在较新的XAudio2 API for Windows 8和10中,AUDIO_STREAM_CATEGORY
被传递给IXAudio2::CreateMasteringVoice
。
这些文档还说明了应该如何在不同类型的音频中使用这些音频。然而,IXAudio2
只允许一个主语音。要做到这一点,需要完全独立的IXAudio2
实例以及所有相关接口,或者可以通过某种方式在音频图的其他地方指定类别?
游戏应该将他们的音乐流分类为AudioCategory_GameMedia,这样如果另一个应用程序在后台播放音乐,游戏音乐就会自动停止。音乐或视频应用程序应该将它们的流分类为AudioCategory_Media或AudioCategory_Movie,这样它们将优先于AudioCategory_GameMedia流。游戏音频为游戏中的电影或视频,当音频是预混的,或由于创造性的原因,应优先于背景音频,也应被归类为媒体或电影。
发布于 2018-07-18 23:28:00
您可以在一个进程中创建多个IXAudio2
实例,以便每个实例都具有自己的主声音。如果要从进程输出多个类型的音频,则需要创建多个IXAudio2
实例。
通常,您可以只使用一个,并且总是使用AudioCategory_GameMedia
。
我知道这个设计有点杂乱无章,但是这个类别是在WASAPI输出语音上设置的,这就是XAudio2将其掌握的语音信息发送给它的地方。任何其他设计都需要对内部XAudio音频图中的类别数据进行注释,这将是非常复杂的,实现起来并不是很有价值。相反,我们选择让应用程序一次激活不止一个音频图,每个音频图都有自己的掌握声音,因此属于自己的类别。
您如何选择支持WASAPI的音频类别功能取决于您,当然,最好的用户体验取决于您的应用程序到底做了什么。
https://stackoverflow.com/questions/51398477
复制相似问题