次の方法で共有


IXAudio2VoiceCallback::OnStreamEnd メソッド

ボイスが連続オーディオ ストリームの再生を終了したときに呼び出されます。

構文

virtual void OnStreamEnd() = 0

戻り値

なし。

解説 

OnStreamEnd は、XAUDIO2_END_OF_STREAM フラグが設定された XAUDIO2_BUFFER を XAudio2 が処理するときにトリガーされます。詳細については、IXAudio2SourceVoice::SubmitSourceBuffer メソッドを参照してください。

OnStreamEnd のコールバックは、XAudio2 で、ボイスに送信された最終バッファーの消費が完了したことを示します。OnStreamEnd が呼び出された後のオーディオの状態は、処理されているオーディオ データの型 (PCM、XMA、および WMA) によって異なります。PCM データの場合、すべてのオーディオが再生されたことが保証され、ボイスを安全に停止または破棄できます。XMA および WMA データの場合、オーディオ データは、コールバックの後に処理され、バッファーに関連付けられているメモリーを解放できますが、オーディオは必ずしも再生が完了しているわけではありません。ボイスが中断しないようにするには、ボイスを停止または破棄する前に、サンプル内の最終バッファーの長さまで時間が経過するのを待ちます。

OnStreamEnd のコールバックは、XAUDIO2_END_OF_STREAM フラグが設定された XAUDIO2_BUFFER が処理されたことを示すだけです。このコールバックは情報提供のみを目的としており、このコールバックによって、これをトリガーしたソース ボイスの状態が変更されることはありません。ボイスは、IXAudio2SourceVoice::Stop が呼び出されるまで開始状態のままとなり、引き続き、送信されたソース バッファーを再生し、追加コールバックをトリガーします。

OnStreamEnd は、現在のバッファーの最終バイトが消費された直後に必ず呼び出されます。

IXAudio2VoiceCallback インターフェイス メソッドの詳細については、「XAudio2 のコールバック」を参照してください。

要件

ヘッダー: xaudio2.h で宣言されています。

関連項目

IXAudio2VoiceCallback
XAudio2 のコールバック
方法 : ソース ボイスのコールバックの使用