2012-01-11 29 views
1

我的程序當前在wp7中使用MediaElement播放.wav文件。Sound Visualizer for Silverlight中的Wave文件

我想爲它寫一個非常簡單的可視化工具(例如一個表示波形幅度的數字)。但我不知道如何從MediaElement獲取原始媒體信息。

我已經搜索了四周,到目前爲止已經結束了與Salus MediaKit(僅用於MP3),節拍檢測(涉及複雜的算法)和WaveControl,它不會實時顯示。

有人更熟悉音頻處理指向我可以採取的方法嗎?

回答

2

不要以爲你可以從媒體元素獲取原始音頻數據。需要提前訪問音頻文件以進行計算,然後使用MediaStreamSource類的GetSampleAsync將音頻樣本發送到MediaElement。可以在MSDN here上找到文檔。

認爲您仍然可以使用Saluse媒體套件作爲參考,因爲它首先將mp3文件解碼爲原始音頻數據,然後對其進行操作。可以查看RawMP3MediaStreamSource類來引用此。 WAV文件是未壓縮的,因此在刪除任何標題信息後,您應該能夠從中計算出您的幅度。一個好的閱讀是如何存儲uncompressed audio (PCM)