私は、XAudio2を使用して、銃声のように、私のアプリで繰り返し1つのサウンドを再生する必要があります。XAudio2で同じサウンドを繰り返し再生するには?
public sealed class X2SoundPlayer : IDisposable
{
private readonly WaveStream _stream;
private readonly AudioBuffer _buffer;
private readonly SourceVoice _voice;
public X2SoundPlayer(XAudio2 device, string pcmFile)
{
var fileStream = File.OpenRead(pcmFile);
_stream = new WaveStream(fileStream);
fileStream.Close();
_buffer = new AudioBuffer
{
AudioData = _stream,
AudioBytes = (int) _stream.Length,
Flags = BufferFlags.EndOfStream
};
_voice = new SourceVoice(device, _stream.Format);
}
public void Play()
{
_voice.SubmitSourceBuffer(_buffer);
_voice.Start();
}
public void Dispose()
{
_stream.Close();
_stream.Dispose();
_buffer.Dispose();
_voice.Dispose();
}
}
上記のコードは、実際にはSlimDXのサンプルに基づいています。
これは私がその目的のために書いたコードの一部です。私は繰り返し再生()を呼び出したときに
はそれが今何、音は次のように果たしている:
音 - >音 - >サウンド
だから、それだけでバッファや戯曲を埋めますそれ。
を再生する必要がありますが、は現在再生中ですので、効果的にこれらの2つ以上を同時にミックスして再生する必要があります。
私が見逃したことがあるか、私の現在の解決策では不可能です(SubmixVoicesが役立つかもしれません)?
私はドキュメントに関連するものを見つけようとしていますが、私は成功しておらず、参考にできるオンラインの例はあまりありません。
ありがとうございました。