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

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

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

请你能告诉我如何做到这一点吗?即使我已经阅读了很多关于 WASAPI、XAudio2 的内容并查看了许多代码示例,我仍然无法找到将额外的音频处理代码连接到音频处理管道中的方法。

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

期待看到你的建议...

亲切的问候,

马特·戴利

最佳答案

I need to find a point at which there is an audio buffer containing raw PCM data



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

您可以使用 Mp3Sharp 之类的东西进行解码。这样,您的托管代码将在 CPU 上对 mp3 进行解码,您可以随意干预/处理,然后将 PCM 输入媒体流源。主要缺点 - 电池生命周期:硬件提供的编解码器应该更节能。

关于audio - 将音频效果(混响等)添加到 BackgroundAudioPlayer 驱动的流式音频应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20824582/

相关文章:

xaml - 如何设置 HubSection 标题样式

c# - 如何清除 WriteableBitmap 的内存

android - React Native - 在一定时间后关闭后台播放的音频

html - 自动启动和循环不适用于音频属性

c# - Windows Phone 8 推送通知推送 channel 总是创建新的 channel uri

c++ - 为什么我的 libmpg123 构建不支持 float ?我如何启用它?

c# - AudioPlaybackAgent 中的计时器

javascript - 在进度栏中显示音频名称

javascript - JavaScript音频分析语音