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

时间:2015-11-17 13:31:33

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

我正在开展一个WinRT项目,我同时在其中播放多个视频文件。我有3个连接到机器的音频设备,它将被独特地用于从正在播放的视频文件中呈现音频。可以同时播放的最大视频数量为3.因此,每个音频设备将用于从其相应的视频文件中呈现音频。即,音频设备1将播放视频1,依此类推。这是我的要求。

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

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

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

1 个答案:

答案 0 :(得分:0)

我会说你可以跟你在第二种方法中提到的XAudio2一样。由于您可以将deviceId传递给createMasteringVoice(),因此您可以创建UniversalAudioPlayer的多个实例,并为每个实例传递不同的ID。这样可以同时播放多个声音。看一下功能定义和社区添加here