2011-10-02 71 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,...)循环使用您的数百个文件。