2011-10-02 69 views
0

我正在尋找解決此任務的方法:我想打開任何音頻文件(MP3,FLAC,WAV),然後將其提取到提取的表單並散列此數據。問題是:我不知道如何獲取這個提取的音頻數據。 DirectX可以完成這項工作,對吧?另外,我想如果我有兩個MP3文件的例子,320kbps和只有ID3標籤不同,並且裏面存在與音頻數據混合的文件(MP3格式允許垃圾進入內部)的垃圾,我提取這兩個文件,I應該得到完全相同的音頻數據,對吧?例如,如果一個文件是128而另一個文件是320,我只會有所不同。好吧,問題是,有沒有辦法使用DirectX來獲取此提取的音頻數據?我想它會是一些函數返回字節數組或什麼的。另外,只是在不播放的情況下提取整個文件會很方便。我想處理數百個文件,所以每個3-10分鐘/秒(如果文件必須以自然速度播放進行解碼)更糟糕,每個文件只有一秒(僅提取) 我希望我的問題是可以理解的。散列原始音頻數據

非常感謝的答案,

亞倫

+0

大概這是一個Windows特有的問題? –

+0

@PaulR是的,請。 –

回答

0

使用http://sox.sourceforge.net/(多平臺)。它的速度比實時更快,並且它的設計比批處理模式的DirectX更多。例如,sox -r 48k -b 16 -L -c 1 in.mp3 out.raw。使用您喜歡的任何腳本語言(bash,python,.bat,...)循環使用您的數百個文件。