方法: オーディオ グラフでのボイスの動的な追加または削除
音声グラフはいつでも変更して、音声またはサブグラフ全体を追加または削除できます。 このトピックでは、「 方法: 基本的なオーディオ処理グラフを作成する」の手順に従って作成されたグラフのサブミックス音声を追加または削除する方法について説明します。 1 つの音声で、複数の音声または長い音声チェーンに出力を送信できます。 1 つの音声を削除または追加すると、オーディオ グラフに大きな影響を与える可能性があります。
オーディオ グラフを動的に変更するには
オーディオ グラフの音声の追加と削除は、1 つのリンクされたリストまたはグラフからノードを追加または削除するのとよく似ています。
音声グラフまたはサブグラフをオーディオ グラフに追加するには
SetOutputVoices 関数を使用して、グラフ内の音声の出力 (親音声) を追加する音声に設定します。 新しい音声の出力を親音声の元の子に設定します。
XAUDIO2_SEND_DESCRIPTOR send = {0, pNewVoice}; XAUDIO2_VOICE_SENDS sendlist = {1, &send}; pParentVoice->SetOutputVoices(&sendlist); send.pOutputVoice = pChildVoice; pNewVoice->SetOutputVoices(&sendlist);
音声グラフから音声またはサブグラフを削除するには
削除する音声の親の出力音声を、削除する音声の子に設定します。 削除する音声がグラフの最後にある場合は、親音声をマスター音声を指すよう変更する必要があります。
XAUDIO2_SEND_DESCRIPTOR send = {0, pChildVoice}; XAUDIO2_VOICE_SENDS sendlist = {1, &send}; pParentVoice->SetOutputVoices(&sendlist);
わかりやすくするために、これらの例では各親に子が 1 つだけ存在します。 親ノードに複数の子がある場合、その sendlist には、1 つの音声へのポインターではなく、音声の配列が含まれます。
関連トピック