방법: 오디오 그래프에서 동적으로 음성 추가 또는 제거

언제든지 오디오 그래프를 변경하여 음성 또는 전체 하위 그래프를 추가하거나 제거할 수 있습니다. 이 항목에서는 방법: 기본 오디오 처리 그래프 빌드의 단계에 따라 생성된 그래프에서 서브믹스 음성을 추가하거나 제거하는 방법을 보여 줍니다. 단일 음성은 출력을 여러 음성 또는 긴 음성 체인으로 보낼 수 있습니다. 단일 음성을 제거하거나 추가하면 오디오 그래프에 큰 영향을 미칠 수 있습니다.

오디오 그래프를 동적으로 변경하려면

오디오 그래프에서 음성을 추가하고 제거하는 것은 단일 연결된 목록 또는 그래프에서 노드를 추가하거나 제거하는 것과 매우 유사합니다.

  • 오디오 그래프에 음성 또는 하위 그래프를 추가하려면

    SetOutputVoices 함수를 사용하여 추가할 음성으로 그래프의 음성 출력인 부모 음성을 설정합니다. 새 음성의 출력을 부모 음성의 원래 자식으로 설정합니다.

    XAUDIO2_SEND_DESCRIPTOR send = {0, pNewVoice};
    XAUDIO2_VOICE_SENDS sendlist = {1, &send};
    pParentVoice->SetOutputVoices(&sendlist);
    send.pOutputVoice = pChildVoice;
    pNewVoice->SetOutputVoices(&sendlist);
    
  • 오디오 그래프에서 음성 또는 하위 그래프를 제거하려면

    제거되는 음성의 부모 출력 음성을 제거 중인 음성의 자식으로 설정합니다. 제거되는 음성이 그래프의 끝에 있는 경우 부모 음성은 master 음성을 가리키도록 변경해야 합니다.

    XAUDIO2_SEND_DESCRIPTOR send = {0, pChildVoice};
    XAUDIO2_VOICE_SENDS sendlist = {1, &send};
    pParentVoice->SetOutputVoices(&sendlist);
    

명확성을 위해 각 부모는 이러한 예제에 하나의 자식만 있습니다. 부모 노드에 여러 자식이 있는 경우 해당 송신 목록에는 하나의 음성에 대한 포인터 대신 음성 배열이 포함됩니다.

오디오 그래프

XAudio2 프로그래밍 지침

방법: 기본 오디오 처리 그래프 빌드

방법: 서브믹스 음성 사용

방법: 효과 체인 만들기