我正在寻找这个任务的解决方案:我想打开任何音频文件(MP3,FLAC,WAV),然后将其转到提取的表单并散列这些数据。问题是:我不知道如何获取这个提取的音频数据。 DirectX可以胜任这项工作吧?而且,我想如果我有两个MP3文件,320kbps和只有ID3标签不同,混合音频数据的文件里面有垃圾(MP3格式允许垃圾进入)我提取两个文件,我应该得到完全相同的音频数据,对吧?例如,如果一个文件是128而另一个文件是320,我只会有所不同。好的,问题是,有没有办法使用DirectX来获取这些提取的音频数据?我想这是一些函数返回字节数组或其他东西。而且,在没有回放的情况下提取整个文件会很方便。我想处理数百个文件,所以每个3-10分钟/秒(如果文件必须以自然速度播放进行解码)比每个文件一秒钟更差(仅提取) 我希望我的问题是可以理解的。
非常感谢您的回答,
亚伦
答案 0 :(得分:0)
使用http://sox.sourceforge.net/(多平台)。它比你想要的更快,而且它比DirectX更适合批处理模式。例如,sox -r 48k -b 16 -L -c 1 in.mp3 out.raw
。使用您喜欢的任何脚本语言(bash,python,.bat,...)循环遍历数百个文件。