在较新的用于windows 8和10的xaudio2 api中, AUDIO_STREAM_CATEGORY 传递给 IXAudio2::CreateMasteringVoice .
AUDIO_STREAM_CATEGORY
IXAudio2::CreateMasteringVoice
文档接着说明了如何将它们用于不同类型的音频。然而 IXAudio2 只允许一个主声音。这样做是完全分开的 ixAudio2 实例以及所需的所有关联接口,或者可以通过某种方式在音频图的其他位置指定类别?
IXAudio2
ixAudio2
游戏应将其音乐流分类为 音频类别游戏媒体 因此,如果另一个应用程序在后台播放音乐,则游戏音乐会自动静音。音乐或视频应用程序应将其流分类为 音频类别媒体 或 音频类电影 所以他们会优先考虑 音频类别游戏媒体 溪流。用于游戏内电影或动画的游戏音频,当音频是预混料或出于创造性的原因应优先于背景音频时,也应归类为 媒体 或 电影 是的。
您可以创建多个 IXAudio2 一个进程中的实例,以便每个进程都有自己的主声音。如果要从进程中输出多个音频类别,则需要创建多个 ixAudio2 实例。
一般来说,你只需要一个就可以逃脱 AudioCategory_GameMedia 是的。
AudioCategory_GameMedia
我知道这个设计有点笨拙,但类别是在wasapi输出语音上设置的,这是xaudio2发送它掌握语音内容的地方。任何其他设计都需要在内部Xaudio音频图中注释类别数据,因为没有太多的价值,实现起来会非常复杂。相反,我们选择让应用程序一次激活多个音频图,每个音频图都有自己的主控语音,因此它是自己的类别。
如何选择支持wasapi的音频类别功能取决于您,当然,最佳的用户体验取决于您的应用程序实际执行的操作。