我有一个windows 8应用程序,它使用BackgroundAudioPlayer播放来自远程位置的音频流或本地文件。我现在想要能够添加音频效果,例如混响或回声等.
请你告诉我怎么做好吗?我还没有找到将额外的音频处理代码连接到音频处理管道中的方法,即使我已经阅读了很多关于WASAPI、XAudio2的内容,并查看了许多代码示例。
请注意,这个应用程序是用C#编写的,但是,根据我以前编写音频处理代码的经验,我知道我应该用本机C++编写音频代码。粗略地说,我需要找到一个地方,其中有一个包含原始PCM数据的音频缓冲区,我可以用它作为我的音频处理代码的输入,然后将它写回同一个缓冲区或另一个缓冲区,由下一阶段的音频处理读取。需要有方法来同步在我的代码中发生的事情与手机的其他音频处理机制,当然,这个过程需要非常快,以避免造成音频故障。或者类似的东西;我已经习惯了VST的工作方式,而不是在Windows世界中这些东西是如何工作的。
期待着看到你的建议..。
致以亲切的问候,
马特·戴利
发布于 2014-01-14 21:55:20
我需要找到一个包含原始PCM数据的音频缓冲区。
AFAIK没有这样的观点。此MSDN页面暗示音频/视频解码不是由操作系统执行的,而是由高通芯片本身执行的。
您可以使用类似于Mp3Sharp的东西进行解码。通过这种方式,mp3将被托管代码解码到CPU上,您可以随意干预/处理,然后将PCM提供给媒体流源。主要的缺点-电池寿命:硬件提供的编解码器应该是更节能的。
https://stackoverflow.com/questions/20824582
复制相似问题