我正在使用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
答案 0 :(得分:1)
对于ADPCM,播放循环长度必须是wSamplesPerBlock的倍数。由于WMA也被压缩,我认为可能需要保持循环长度与正在播放的wma文件的帧大小一致。