【发布时间】:2010-11-28 11:18:33
【问题描述】:
如何正确播放可能具有可变比特率(在某些情况下甚至是可变数量的通道)的音频文件,例如 ogg/vorbis?
XAudio 期望在创建源语音时在 WAVEFORMATEX 结构中提供此信息,并且似乎没有为每个提交的缓冲区提供更改它的方法...
【问题讨论】:
标签: c++ audio oggvorbis xaudio2
如何正确播放可能具有可变比特率(在某些情况下甚至是可变数量的通道)的音频文件,例如 ogg/vorbis?
XAudio 期望在创建源语音时在 WAVEFORMATEX 结构中提供此信息,并且似乎没有为每个提交的缓冲区提供更改它的方法...
【问题讨论】:
标签: c++ audio oggvorbis xaudio2
除非我很高,否则没有音频格式指定可变输出比特率或可变数量的输出通道。可变比特率编解码器意味着用于对固定数量的样本进行编码的比特数是变化的。 Vorbis 允许对通道进行动态编码,也允许使用更简单的功能(例如静音)再现通道。输出通道数和输出比特率保持不变。
此外,XAudio2 本身并不支持 ogg/vorbis 文件;它在 Windows 上支持 PCM、ADPCM 和 xWMA,在 Xbox 360 上支持 PCM、XMA 和 xWMA。
一般来说,对于非原生格式,您必须自己将音频解压缩为适当的输出比特率和通道格式,然后通过IXAudio2SourceVoice::SubmitSourceBuffer 将其发送到IXAudio2SourceVoice。
【讨论】: