使用XAudio2循环xWMA声音



我使用SharpDX通过XAudio2播放声音,在一定范围内循环xWMA文件时遇到问题。当使用xWMA文件时,值LoopBegin和LoopLength似乎被完全忽略;它总是循环播放整个声音文件。

但是,在WAV文件中,这些值与预期的一样工作。

我已经在看书了http://msdn.microsoft.com/en-us/library/windows...er%28v=vs.85%29.aspx

但我相信我已经满足了PlayBegin、PlayLength、LoopBegin、LoopLength等值的所有标准。

关于xwma数据,我这里缺少什么具体的信息?

我使用这个函数来设置样本中的值,因为我的所有文件都有44100KhZ

static int MilliSecondsToSamples(double millis)
{
     return (int) (44100.0 * millis / 1000.0);
}

我在windows 7上。NET4.0

根据本页:http://msdn.microsoft.com/en-us/library/windows/desktop/microsoft.directx_sdk.xaudio2.xaudio2_buffer(v=vs.85).aspx

对于ADPCM,播放循环长度必须是wSamplesPerBlock的倍数。由于WMA也被压缩了,我认为可能需要保持循环长度与正在播放的WMA文件的帧大小一致。

相关内容

  • 没有找到相关文章

最新更新