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 の倍数である必要があることがわかりますが、まだ何か間違っていると思います。