WinRT - 将音频渲染到不同的设备
WinRT - Rendering audio to different devices
我正在开发一个 WinRT 项目,在该项目中我同时播放多个视频文件。我有 3 个音频设备连接到机器上,它们将专门用于从正在播放的视频文件中渲染音频。可以同时播放的最大视频数为 3。因此,每个音频设备都将用于从其相应的视频文件中呈现音频。即音频设备 1 将播放视频 1,依此类推。这就是我的要求。
到目前为止,我遇到了两种方法。首先,我们使用杜比或任何其他 API 将音频通道化到相应的设备。即左声道呈现给设备 1,middle/center 呈现给设备 2,右声道呈现给设备 3。我试过 Dolby Audio sample app for Windows 10. They've done channeling in embedded video, not in code. I couldn't find documentation for Windows 10 Dolby API。那么对于这种方法,我可以将音频以通道的形式呈现到特定的音频设备吗?而且我不想合并音频。
其次,我们使用了 3 个声卡,并为每个声卡连接了一个音频设备。我们通过提供设备 ID 选择要在其上播放音频的设备。我通过使用我想要的设备 ID 调用 createMasteringVoice() 方法,尝试了 XAudio2 的这种方法。这适用于单个音频文件,但是,我想渲染正在播放的多个视频的音频。
这两种方法都没有解决核心需求。因此,考虑到这种情况,满足要求的最佳方法是什么?
我会说您可以使用第二种方法中提到的 XAudio2
。由于您可以将 deviceId
传递给 createMasteringVoice()
,因此您可以创建 UniversalAudioPlayer
的多个实例并将不同的 ID 传递给每个实例。这样可以同时播放多个声音。查看功能定义和社区添加 here.
我正在开发一个 WinRT 项目,在该项目中我同时播放多个视频文件。我有 3 个音频设备连接到机器上,它们将专门用于从正在播放的视频文件中渲染音频。可以同时播放的最大视频数为 3。因此,每个音频设备都将用于从其相应的视频文件中呈现音频。即音频设备 1 将播放视频 1,依此类推。这就是我的要求。
到目前为止,我遇到了两种方法。首先,我们使用杜比或任何其他 API 将音频通道化到相应的设备。即左声道呈现给设备 1,middle/center 呈现给设备 2,右声道呈现给设备 3。我试过 Dolby Audio sample app for Windows 10. They've done channeling in embedded video, not in code. I couldn't find documentation for Windows 10 Dolby API。那么对于这种方法,我可以将音频以通道的形式呈现到特定的音频设备吗?而且我不想合并音频。
其次,我们使用了 3 个声卡,并为每个声卡连接了一个音频设备。我们通过提供设备 ID 选择要在其上播放音频的设备。我通过使用我想要的设备 ID 调用 createMasteringVoice() 方法,尝试了 XAudio2 的这种方法。这适用于单个音频文件,但是,我想渲染正在播放的多个视频的音频。
这两种方法都没有解决核心需求。因此,考虑到这种情况,满足要求的最佳方法是什么?
我会说您可以使用第二种方法中提到的 XAudio2
。由于您可以将 deviceId
传递给 createMasteringVoice()
,因此您可以创建 UniversalAudioPlayer
的多个实例并将不同的 ID 传递给每个实例。这样可以同时播放多个声音。查看功能定义和社区添加 here.