如何正确播放可能具有可变比特率的音频文件(在某些情况下甚至是可变数量的频道),例如ogg / vorbis?
XAudio希望在创建源语音时在WAVEFORMATEX结构中显示此信息,并且似乎没有提供为每个提交的缓冲区更改它的方法...
答案 0 :(得分:2)
除非我很高,否则没有音频格式指定可变输出比特率或可变数量的输出频道。可变比特率编解码器意味着用于编码固定数量的样本的比特数变化。 Vorbis允许动态编码频道以及可以通过诸如静音等简单功能再现的频道。输出通道的数量保持不变,输出比特率也是如此。
此外,XAudio2本身不支持ogg / vorbis文件;它支持Windows上的PCM,ADPCM和xWMA以及Xbox 360上的PCM,XMA和xWMA。
通常,对于非原生格式,您必须自行将音频解压缩为相应的输出比特率和频道格式,然后通过IXAudio2SourceVoice
将其发送到IXAudio2SourceVoice::SubmitSourceBuffer