Share via


IXAudio2Voice::DestroyVoice メソッド

ボイスを破棄します。必要に応じて、ボイスを停止し、XAudio2 グラフから削除します。

構文

void DestroyVoice()

戻り値

なし。

解説 

現在このボイスに他のボイスがオーディオを送信している場合、このメソッドは失敗します。

DestroyVoice は、オーディオ処理スレッドがアイドルになるまで待機するので、しばらく時間がかかることがあります (通常は数ミリ秒以内です)。これは、ボイスがコールバックやオーディオ データの読み取りを行っていない状態を保証するために必要です。これによって、呼び出しを行って応答が返されるとすぐ、アプリケーションはこれらのリソースを安全に解放することができます。

タイトル スレッドの中断により DestroyVoice の呼び出しがブロックされるのを回避するために、アプリケーションでは、重要ではない別個のスレッド上のボイスを破棄するか、またはボイス プール ストラテジを使用して、ボイスを破棄しないで再使用することができます。ボイスは、同じデータ フォーマットを持ち、ボイスが作成されたときと同じチャンネル数を持つオーディオでのみ再使用できます。ボイスは、適切な周波数比パラメーターを指定して IXAudio2SourceVoice::SetFrequencyRatio を呼び出すことにより、ボイスのサンプル レートとは異なるサンプル レートでオーディオ データを再生できます。

コールバック内からの DestroyVoice の呼び出しは無効です。コールバック内から DestroyVoice を呼び出すと、XAUDIO2_E_INVALID_CALL が返されます。

要件

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

関連項目

IXAudio2Voice