共用方式為


使用方法:從音訊圖形動態新增或移除聲音

您可以隨時變更音訊圖表,以新增或移除語音或整個子圖表。 本主題說明如何透過 如何:建置基本音訊處理圖形中的步驟,從已建立的圖形新增或移除副混音。 單一語音可以將其輸出傳送至數個語音,或傳送到長串的語音。 移除或新增單一語音可能會對音訊圖形產生很大的影響。

動態變更音訊圖表

從音訊圖形新增和移除語音與新增或移除單一連結清單或圖形中的節點非常類似。

  • 將語音或子圖表新增至音訊圖形

    使用 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);
    

請注意,為了清楚起見,每個父系在這些範例中只有一個子系。 如果父節點有多個子系,則其傳送清單會包含語音陣列,而不是只包含一個語音的指標。

音訊圖表

XAudio2 程式設計指南

使用方法:建立基本音訊處理圖形

使用方法:使用次混音聲音

使用方法:建立效果鏈