audio - WinRT - 将音频渲染到不同的设备

标签 audio windows-runtime naudio xaudio2 dolby-audio-api

我正在开发一个 WinRT 项目,在该项目中我同时播放多个视频文件。我在机器上连接了 3 个音频设备,它们将专门用于渲染正在播放的视频文件中的音频。可以同时播放的最大视频数为 3。因此,每个音频设备都将用于从其相应的视频文件中渲染音频。即音频设备 1 将播放视频 1,依此类推。这就是我的要求。

到目前为止,我遇到了两种方法。首先,我们使用杜比或任何其他 API 将音频 channel 化到相应的设备。即左声道渲染到设备 1,中间/中心渲染到设备 2,右声道渲染到设备 3。我试过 Dolby Audio sample app对于 Windows 10。他们在嵌入式视频中完成了 channel ,而不是在代码中。我找不到 Windows 10 Dolby API 的文档.那么对于这种方法,我可以将音频以 channel 的形式呈现给特定的音频设备吗?而且我不想以任何方式合并音频。

其次,我们使用 3 个声卡,并在每个声卡上附加一个音频设备。我们通过提供设备 ID 来选择我们想要播放音频的设备。我用 XAudio2 尝试过这种方法通过使用我想要的设备 ID 调用 createMasteringVoice() 方法。这适用于单个音频文件,但是,我想渲染正在播放的多个视频的音频。

这两种方法都没有解决核心需求。因此,考虑到这种情况,满足要求的最佳方法是什么?

最佳答案

我想说你可以选择 XAudio2正如你在第二种方法中提到的。既然可以通过deviceIdcreateMasteringVoice() ,您可以创建多个 UniversalAudioPlayer 的实例并将不同的ID传递给每个人。这样可以同时播放多个声音。看看函数定义和社区添加here .

关于audio - WinRT - 将音频渲染到不同的设备,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33758240/

相关文章:

c# - 使用NAudio从Kinect捕获音频

c# - 使用 Vorbis 和 NAudio 播放 OGG 文件

ios - 将音频和视频流式传输到 IOS 应用程序

javascript - 如何检测 HTML5 或 Javascript 中的浏览器类型以便在 Safari/IE 浏览器中播放 mp3 而不是 webm?

error-handling - 在哪里可以找到 Windows 运行时的 COM 错误代码?

c# - 处理NAudio中mp3内存流的WaveFormat设置

c# - 在 Unity 中预处理音频频谱数据

objective-c - 单击按钮以使用Xcode播放声音时调试器中的错误

audio - IMFMediaPlayer 在 SetSourceFromByteStream 期间挂起

linq - 如何等待 Linq 查询中的方法