将音频效果(混响等)添加到BackgroundAudioPlayer驱动的流音频应用程序中

时间:2013-12-29 11:16:33

标签: audio windows-phone-8 background-audio wasapi

我有一个Windows Phone 8应用程序,它使用BackgroundAudioPlayer播放来自远程位置的音频流或本地文件。我现在希望能够添加音频效果,例如混响或回声等......

请您告诉我如何做到这一点?我无法找到一种方法将额外的音频处理代码挂钩到音频处理流程中,即使我已经阅读了很多关于WASAPI,XAudio2的内容,并查看了很多代码示例。

请注意,应用程序是用C#编写的,但是根据我之前编写音频处理代码的经验,我知道我应该用原生C ++编写音频代码。粗略地说,我需要找到一个包含原始PCM数据的音频缓冲区的点,我可以将其用作我的音频处理代码的输入,然后将其写回到相同的缓冲区或另一个缓冲区,该缓冲区由音频处理的下一个阶段。需要有一些方法可以将我的代码中发生的事情与手机的其他音频处理机制同步,当然,这个过程需要非常快,以免造成音频故障。或类似的东西;我已经习惯了VST的工作原理,而不是Windows Phone世界中这些东西的运作方式。

期待看到你的建议...

亲切的问候,

马特戴利

1 个答案:

答案 0 :(得分:1)

  

我需要找到一个包含音频缓冲区的点   原始PCM数据

AFAIK没有这样的观点。 This MSDN page暗示音频/视频解码不是由操作系统执行,而是由Qualcomm芯片本身执行。

您可以使用Mp3Sharp之类的东西进行解码。这样,mp3将通过您的托管代码在CPU上解码,您可以干预/处理您喜欢的内容,然后将PCM提供给媒体流源。主要缺点 - 电池寿命:硬件提供的编解码器应该更加节能。