Procedura: Aggiungere o rimuovere dinamicamente voci da un grafico audio
È possibile modificare grafici audio in qualsiasi momento per aggiungere o rimuovere voci o interi sottogrammi. Questo argomento illustra come aggiungere o rimuovere voci di submix da un grafo creato seguendo i passaggi descritti in Procedura: Creare un grafico di elaborazione audio di base. Una singola voce può inviare l'output a più voci o a una lunga catena di voci. La rimozione o l'aggiunta di una singola voce può avere un grande effetto su un grafico audio.
Per modificare dinamicamente un grafico audio
L'aggiunta e la rimozione di voci da un grafico audio è molto simile all'aggiunta o alla rimozione di nodi da un singolo elenco o grafico collegato.
Per aggiungere una voce o un sottografo a un grafico audio
Impostare l'output di una voce nel grafico, ovvero la voce padre, sulla voce da aggiungere usando la funzione SetOutputVoices. Imposta l'output della nuova voce sul figlio originale della voce madre.
XAUDIO2_SEND_DESCRIPTOR send = {0, pNewVoice}; XAUDIO2_VOICE_SENDS sendlist = {1, &send}; pParentVoice->SetOutputVoices(&sendlist); send.pOutputVoice = pChildVoice; pNewVoice->SetOutputVoices(&sendlist);
Per rimuovere una voce o un sottografo da un grafico audio
Impostare la voce di output dell'elemento padre della voce rimossa sull'elemento figlio della voce da rimuovere. Se la voce rimossa si trova alla fine del grafico, la voce padre deve essere modificata in modo da puntare alla voce master.
XAUDIO2_SEND_DESCRIPTOR send = {0, pChildVoice}; XAUDIO2_VOICE_SENDS sendlist = {1, &send}; pParentVoice->SetOutputVoices(&sendlist);
Si noti che per maggiore chiarezza ogni genitore ha un solo figlio in questi esempi. Se un nodo padre ha più elementi figlio, l'elenco di invio conterrà una matrice di voci anziché un puntatore a una sola voce.
Argomenti correlati