我正在为 DirectX XAudio2 api 使用 SharpDX 包装器。http://sharpdx.org/
我需要能够将加载到 SourceVoice 中的 WAV 文件查找到轨道中的给定位置。我正在努力弄清楚我应该将 PlayBegin 设置为什么,以便跳过设定的毫秒数或按比例的轨道量。
public void onMetronome(int bar)
{
if (voice != null) voice.DestroyVoice();
voice = new SourceVoice(Player.XAudio, buffer.WaveFormat, true);
buffer.PlayBegin = (int)(bar * buffer.Stream.Length / 4);
voice.SubmitSourceBuffer(buffer, buffer.DecodedPacketsInfo);
voice.Start();
}
谁能告诉我我应该将游戏设置为什么值?
我可以从文档中看到这个值是样本编号,它可能需要是 128 的倍数,但我认为我仍然做错了什么。