我使用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
发布于 2013-08-08 06:46:38
根据这个页面:http://msdn.microsoft.com/en-us/library/windows/desktop/microsoft.directx_sdk.xaudio2.xaudio2_buffer(v=vs.85).aspx
对于ADPCM播放循环长度必须是wSamplesPerBlock的倍数。由于WMA也是压缩的,我认为可能会有一些要求,使循环长度与正在播放的wma文件的帧大小一致。
https://stackoverflow.com/questions/17603433
复制相似问题