天天看点

分贝显示器,实时显示声音强度(附源码)

分贝显示器,实时显示声音强度(附源码)

接下来,我们做个小demo,来实现类似的功能。先上demo运行起来的截图:

分贝显示器,实时显示声音强度(附源码)

(界面确实比较丑,我们这里的重点在于技术方面如何实现,如果你愿意花点时间,可以将其美化得跟QQ的那个一样漂亮^_^)

1.实现思路

实现这个小例子的主要思路如下:

(2)对采集到的数据进行傅立叶变换,变换的结果就可以反应声音的强度。

(3)使用ProgressBar控件来实时显示声音的强度信息。

2.具体实现

(1)傅立叶变换算法 

(2)初始化OMCS服务器、设备管理器、麦克风设备 

(3)连接麦克风,开始采集

首先,初始化本地多媒体设备管理器,然后使用麦克风连接器连接到当前登录用户“tester”(即“自己”)麦克风设备。如果连接成功,多媒体管理器将会触发AudioCaptured事件,我们通过这个事件来截获音频数据。

(4)处理采集到的音频数据,并显示结果 

注意:由于OMCS音频采样的位数为16bit,这样,一个单位的语音样本的字节数为2个字节。所以,傅立叶变换前,先要将原始的PCM数据(byte[])转为Int16的数组。

在显示分贝强度时,我偷了下懒,直接使用了ProgressBar控件,体验不是很好,勉强能表达出意思吧。

3.Demo程序

继续阅读