天天看點

分貝顯示器,實時顯示聲音強度(附源碼)

分貝顯示器,實時顯示聲音強度(附源碼)

接下來,我們做個小demo,來實作類似的功能。先上demo運作起來的截圖:

分貝顯示器,實時顯示聲音強度(附源碼)

(界面确實比較醜,我們這裡的重點在于技術方面如何實作,如果你願意花點時間,可以将其美化得跟QQ的那個一樣漂亮^_^)

1.實作思路

實作這個小例子的主要思路如下:

(2)對采集到的資料進行傅立葉變換,變換的結果就可以反應聲音的強度。

(3)使用ProgressBar控件來實時顯示聲音的強度資訊。

2.具體實作

(1)傅立葉變換算法 

(2)初始化OMCS伺服器、裝置管理器、麥克風裝置 

(3)連接配接麥克風,開始采集

首先,初始化本地多媒體裝置管理器,然後使用麥克風連接配接器連接配接到目前登入使用者“tester”(即“自己”)麥克風裝置。如果連接配接成功,多媒體管理器将會觸發AudioCaptured事件,我們通過這個事件來截獲音頻資料。

(4)處理采集到的音頻資料,并顯示結果 

注意:由于OMCS音頻采樣的位數為16bit,這樣,一個機關的語音樣本的位元組數為2個位元組。是以,傅立葉變換前,先要将原始的PCM資料(byte[])轉為Int16的數組。

在顯示分貝強度時,我偷了下懶,直接使用了ProgressBar控件,體驗不是很好,勉強能表達出意思吧。

3.Demo程式

繼續閱讀