如何在Windows上将包含Windows上PCM数据的wav文件(RIFF)解码为原始样本(以便我可以将其提供给ASIO)?
我没有时间重新发明轮子。如果那里有一个库可以让整个“将一个wav文件发送到ASIO”的东西,那就太好了。但是,ASIO很简单,并且有许多Windows在线示例。如果只有我将wav文件作为原始PCM数据提供给它!
我试过使用libsndfile,但是没有任何关于如何在Windows上使用它的例子,它不会在Windows上编译。 (他们交叉编译并在当前发布二进制文件。)
有一种方法可以使用MS API来做到这一点......它是什么?
如果它将它转换为16位44.1 kHz音频会很好,这样我就可以将它提供给ASIO,但我可以处理将这两个位连接起来,如果只有有人可以给我一个关于如何解码的提示一个wav文件到Windows上的原始样本,
答案 0 :(得分:3)
.wav头文件是dead simple (教程),PCM编码数据一旦找到就可以直接送到ASIO(通过解析头部的几个简单字段)
答案 1 :(得分:2)
这封装在Win32上的WAVEFORMATEX结构中。
答案 2 :(得分:1)
如果您获取libsndfile的源代码tarball,您会发现它包含示例/程序/目录中的许多示例程序。
答案 3 :(得分:0)
它们不是Windows API的一部分,但由于我没有太多直接使用它的经验,我只会告诉您一些我知道/已经使用过的工具,它们可以满足您的需求。 / p>
Python有aifc
模块。 FFmpeg是另一种选择,如果您不想使用Python,并且可以从您的代码中调用外部程序。