Procédure : Ajouter ou supprimer dynamiquement des voix d’un graphique audio
Vous pouvez modifier les graphiques audio à tout moment pour ajouter ou supprimer des voix ou des sous-graphes entiers. Cette rubrique vous montre comment ajouter ou supprimer des voix de sous-mix à partir d’un graphique qui a été créé en suivant les étapes décrites dans Guide pratique pour créer un graphique de traitement audio de base. Une seule voix peut envoyer sa sortie à plusieurs voix ou à une longue chaîne de voix. La suppression ou l’ajout d’une seule voix peut avoir un effet important sur un graphique audio.
Pour modifier dynamiquement un graphique audio
L’ajout et la suppression de voix d’un graphique audio sont très similaires à l’ajout ou à la suppression de nœuds à partir d’une liste ou d’un graphique uni-lié.
Pour ajouter une voix ou un sous-graphe à un graphique audio
Définissez la sortie d’une voix dans le graphique, la voix parente, sur la voix à ajouter à l’aide de la fonction SetOutputVoices . Définissez la sortie de la nouvelle voix sur l’enfant d’origine de la voix parente.
XAUDIO2_SEND_DESCRIPTOR send = {0, pNewVoice}; XAUDIO2_VOICE_SENDS sendlist = {1, &send}; pParentVoice->SetOutputVoices(&sendlist); send.pOutputVoice = pChildVoice; pNewVoice->SetOutputVoices(&sendlist);
Pour supprimer une voix ou un sous-graphe d’un graphique audio
Définissez la voix de sortie du parent de la voix supprimée sur l’enfant de la voix supprimée. Si la voix supprimée se trouve à la fin du graphique, la voix parente doit être modifiée pour pointer vers la master voix.
XAUDIO2_SEND_DESCRIPTOR send = {0, pChildVoice}; XAUDIO2_VOICE_SENDS sendlist = {1, &send}; pParentVoice->SetOutputVoices(&sendlist);
Notez que pour plus de clarté, chaque parent n’a qu’un seul enfant dans ces exemples. Si un nœud parent a plusieurs enfants, sa sendlist contient un tableau de voix au lieu d’un pointeur vers une seule voix.
Rubriques connexes