IXAudio2Voice::DestroyVoice メソッド
ボイスを破棄します。必要に応じて、ボイスを停止し、XAudio2 グラフから削除します。
構文
void DestroyVoice()
戻り値
なし。
解説
現在このボイスに他のボイスがオーディオを送信している場合、このメソッドは失敗します。
DestroyVoice は、オーディオ処理スレッドがアイドルになるまで待機するので、しばらく時間がかかることがあります (通常は数ミリ秒以内です)。これは、ボイスがコールバックやオーディオ データの読み取りを行っていない状態を保証するために必要です。これによって、呼び出しを行って応答が返されるとすぐ、アプリケーションはこれらのリソースを安全に解放することができます。
タイトル スレッドの中断により DestroyVoice の呼び出しがブロックされるのを回避するために、アプリケーションでは、重要ではない別個のスレッド上のボイスを破棄するか、またはボイス プール ストラテジを使用して、ボイスを破棄しないで再使用することができます。ボイスは、同じデータ フォーマットを持ち、ボイスが作成されたときと同じチャンネル数を持つオーディオでのみ再使用できます。ボイスは、適切な周波数比パラメーターを指定して IXAudio2SourceVoice::SetFrequencyRatio を呼び出すことにより、ボイスのサンプル レートとは異なるサンプル レートでオーディオ データを再生できます。
コールバック内からの DestroyVoice の呼び出しは無効です。コールバック内から DestroyVoice を呼び出すと、XAUDIO2_E_INVALID_CALL が返されます。
要件
ヘッダー: xaudio2.h で宣言されています。