怎么通过程序检测系统有声音发出?

我需要写个小程序,用程序来监听某个程序或整个系统(即声卡)是否在发出声音,如果有声音便做一些操作。请问检测系统发出声音这个怎么做到呢?是用win32api吗,具体是用哪个... 我需要写个小程序,用程序来监听某个程序或整个系统(即声卡)是否在发出声音,如果有声音便做一些操作。 请问检测系统发出声音这个怎么做到呢? 是用win32 api吗,具体是用哪个呢? 谢谢
我目前只会用用autoit或者perl,不过有其它好用的代码的话,也请麻烦提供一下,谢谢。
注: 重述一下,是检测声音不是播放声音, 请熟悉的朋友给说一下,谢谢 :-)

还是没有朋友可以简单提一下吗:( 哪怕是用到的API函数是哪个跟我说一下也好
展开
 我来答
397835375
2010-11-30 · TA获得超过1779个赞
知道小有建树答主
回答量:866
采纳率:0%
帮助的人:1261万
展开全部
参数1描述要播放的声音文件的位置和文件名;参数2的取值能决定播放声音的模式。参数2的主要取值介绍如下:

取&H0时:为同步播放模式;

取&H1时:为异步播放模式;

取&H2时:当声音文件未找到就停止播音返回;

取&H8时:为循环播放模式。

当调用函数成功,就播放有关声音文件,并且函数的返回值为非0;函数调用失败,函数的返回值为0。

定义调用声音文件函数的具体步骤如下:

①在C盘根目录上建立一个名为Sound的文件夹,在此文件夹中放入5个你所需要的声音文件;

②在VB5.0状态进入“工程”菜单中的“添加模块”再选用“新建”中的“模块”;

③在模块的“通用”中输入下面代码,进行调用API函数的声明;

Declare Function sndPlaySound Lib "winmm.dll" Alias

“sndPlaySoundA" (ByV al lpszSoundName As String, ByVal uFlags As Long) As Long

Dim fil As String

④在模块中输入以下代码,定义调用声音文件函数。

Public Function sound(n As Integer) As Integer

Dim x As Integer

Select Case n

Case 1

fil = "c:\sound\beep3.wav"

x = sndPlaySound(0, 0)

x = sndPlaySound(fil, &H1 Or &H2)

sound = x

Case 2

fil = "c:\sound\hit8.wav"

x = sndPlaySound(0, 0)

x = sndPlaySound(fil, &H1 Or &H2)

sound = x

Case 3

fil = "c:\sound\net7.wav"

x = sndPlaySound(0, 0)

x = sndPlaySound(fil, &H1 Or &H2)

sound = x

Case 4

fil = "c:\sound\out12.wav"

x = sndPlaySound(0, 0)

x = sndPlaySound(fil, &H1 Or &H2)

sound = x

Case 5

fil = "c:\sound\spin5.wav"

x = sndPlaySound(0, 0)

x = sndPlaySound(fil, &H1 Or &H2)

sound = x

Case Else

sound = 0

End Select

End Function

新定义的调用声音函数格式为:sound(n),其中n的取值为1至5的正整数。利用此函数可调用5个不同的声音文件。下面是使用sound函数的演示程序:

①如图在form窗口设置6个命令控件;

②在这些命令控件的Click事件中入分别输入以下代码。

Private Sub Command1_Click()

l = sound(1)

End Sub

Private Sub Command2_Click()

l = sound(2)

End Sub

Private Sub Command3_Click()

l = sound(3)

End Sub

Private Sub Command4_Click()

l = sound(4)

End Sub

Private Sub Command5_Click()

l = sound(5)

End Sub

Private Sub Command6_Click()

End

End Sub

运行程序后,单击有关按钮就能调用所指定的声音文件,发出各种声音
匿名用户
2010-12-01
展开全部
sound(n),其中n的取值为1至5的正整数
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sujiexx
2010-11-10 · TA获得超过1688个赞
知道小有建树答主
回答量:644
采纳率:0%
帮助的人:356万
展开全部
定义调用声音文件函数时用到了Windows播放声音的API函数。现先将此API函数作简单介绍:

sndPlaySound(参数1,参数2)其中:参数1描述要播放的声音文件的位置和文件名;参数2的取值能决定播放声音的模式。参数2的主要取值介绍如下:

取&H0时:为同步播放模式;

取&H1时:为异步播放模式;

取&H2时:当声音文件未找到就停止播音返回;

取&H8时:为循环播放模式。

当调用函数成功,就播放有关声音文件,并且函数的返回值为非0;函数调用失败,函数的返回值为0。

定义调用声音文件函数的具体步骤如下:

①在C盘根目录上建立一个名为Sound的文件夹,在此文件夹中放入5个你所需要的声音文件;

②在VB5.0状态进入“工程”菜单中的“添加模块”再选用“新建”中的“模块”;

③在模块的“通用”中输入下面代码,进行调用API函数的声明;

Declare Function sndPlaySound Lib "winmm.dll" Alias

“sndPlaySoundA" (ByV al lpszSoundName As String, ByVal uFlags As Long) As Long

Dim fil As String

④在模块中输入以下代码,定义调用声音文件函数。

Public Function sound(n As Integer) As Integer

Dim x As Integer

Select Case n

Case 1

fil = "c:\sound\beep3.wav"

x = sndPlaySound(0, 0)

x = sndPlaySound(fil, &H1 Or &H2)

sound = x

Case 2

fil = "c:\sound\hit8.wav"

x = sndPlaySound(0, 0)

x = sndPlaySound(fil, &H1 Or &H2)

sound = x

Case 3

fil = "c:\sound\net7.wav"

x = sndPlaySound(0, 0)

x = sndPlaySound(fil, &H1 Or &H2)

sound = x

Case 4

fil = "c:\sound\out12.wav"

x = sndPlaySound(0, 0)

x = sndPlaySound(fil, &H1 Or &H2)

sound = x

Case 5

fil = "c:\sound\spin5.wav"

x = sndPlaySound(0, 0)

x = sndPlaySound(fil, &H1 Or &H2)

sound = x

Case Else

sound = 0

End Select

End Function

新定义的调用声音函数格式为:sound(n),其中n的取值为1至5的正整数。利用此函数可调用5个不同的声音文件。下面是使用sound函数的演示程序:

①如图在form窗口设置6个命令控件;

②在这些命令控件的Click事件中入分别输入以下代码。

Private Sub Command1_Click()

l = sound(1)

End Sub

Private Sub Command2_Click()

l = sound(2)

End Sub

Private Sub Command3_Click()

l = sound(3)

End Sub

Private Sub Command4_Click()

l = sound(4)

End Sub

Private Sub Command5_Click()

l = sound(5)

End Sub

Private Sub Command6_Click()

End

End Sub

运行程序后,单击有关按钮就能调用所指定的声音文件,发出各种声音。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式