如何正确播放可能具有可变比特率的音频文件(在某些情况下甚至是可变数量的频道),例如ogg / vorbis?

XAudio希望在创建源语音时在WAVEFORMATEX结构中显示此信息,并且似乎没有提供为每个提交的缓冲区更改它的方法...

有帮助吗?

解决方案

除非我很高,否则没有音频格式指定可变输出比特率或可变数量的输出频道。可变比特率编解码器意味着用于编码固定数量的样本的比特数变化。 Vorbis允许动态编码频道以及可以通过诸如静音等简单功能再现的频道。输出通道的数量保持不变,输出比特率也是如此。

此外,XAudio2本身不支持ogg / vorbis文件;它支持Windows上的PCM,ADPCM和xWMA以及Xbox 360上的PCM,XMA和xWMA。

通常,对于非原生格式,您必须自己将音频解压缩为相应的输出比特率和通道格式,并通过<代码将其发送到 IXAudio2SourceVoice > IXAudio2SourceVoice :: SubmitSourceBuffer

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top