音頻工作(採集)模式是什麼?

在即時通訊應用中,根據應用場景的不同,需要對音頻輸入源進行選擇,不同的應用場景對應不同的音頻工作模式。AnyChat Platform Core SDK(需要V2.8.6以上版本)支持多種音頻工作(採集)模式,包括:

1、發言模式(默認):自動選擇麥克風爲音頻輸入源設備,用戶說話的聲音被麥克風採集,啓動音頻特效處理(包括:迴音消除、靜音檢測、噪音抑制、自動增溢),該模式通常應用於互動交流,用戶發言討論等場合[參數值:0];

 

2、放歌模式:自動選擇立體聲混音輸入源設備,本地計算機所播放的聲音被採集,同時SDK內部會自動屏蔽其它用戶的聲音(如果不屏蔽,則用戶的聲音會被採集下來,並回傳給用戶,用戶那邊將會聽到迴音),SDK內部會自動關閉音頻特效處理,該模式通常應用於向其他用戶放歌,而不用關心其他用戶發言的場合[參數值:1];

 

3、卡拉OK模式:自動選擇立體聲混音和麥克風兩個輸入源設備(該特性與硬件相關,有些聲卡不支持同時採集麥克風和立體聲混音),本地計算機所播放的聲音和用戶說話的聲音將會被採集,同時SDK內部會自動屏蔽其它用戶的聲音,SDK內部會自動關閉音頻特效處理,該模式通常應用於向其他用戶放歌,同時自己用麥克風伴唱,而不用關心其它用戶發言的場合[參數值:2];

 

4、線路輸入模式:自動選擇線路輸入源設備,通過線路輸入的聲音將被採集(通常是指將外部的DV、DVD、TV等設備的音頻輸出端子接入聲卡的LineIn口的應用),SDK內部會自動關閉音頻特效處理,該模式通常應用於向其他用戶播放外部設備的聲音,而不需要自己講話的場合,如向房間的所有用戶直播電視信號時,可將電視的視頻輸出接入專用的視頻採集卡,而將電視的聲音輸出接入聲卡的LineIn接口,並選擇“線路輸入模式”,那麼當前房間內的其它用戶就可以收看到實時的電視畫面與聲音了[參數值:3]。

 

典型修改音頻工作模式的代碼如下:

 

1.DWORD dwAudioMode = 1;    // 修改爲放歌模式
2.BRAC_SetSDKOption(BRAC_SO_AUDIO_CPATUREMODE,(PCHAR)&dwAudioMode,sizeof(dwAudioMode));

 

 

AnyChat Platform Core SDK初始化自動啓動“發言模式”,如需要切換到其它的工作模式,需要通過相應的接口設置(參考:64. BRAC_SetSDKOption),在SDK初始化成功後,可動態切換,由於切換過程中,SDK內部會自動選擇對應的源設備,故切換後,上層應用需要更新當前的音頻採集設備,以及對應的音頻特效狀態等標誌。

 

AnyChat Platform Core SDK會根據模式的不同和網絡狀態的不同,動態調節播放緩衝區的大小,從而來控制播放延遲,如發言模式下,當網絡條件好的情況下,平均延遲<300ms,當網絡條件不好的情況下,平均延遲<800ms;而放歌模式等其它非發言模式,延遲將會隨網絡狀態的變化而變化。總的來說,發言模式延遲小,保障實時性,非發言模式,如放歌模式,則延遲會稍大,保障流產性。

 

AnyChat Platform Core SDK會自動記錄最後一次上層應用所選擇的工作模式,下次重新運行後,會自動啓用前次記錄的工作模式,如果不期望SDK記錄前次工作模式,則可通過關閉SDK的配置文件來實現(在SDK初始化時去掉BRAC_FUNC_CONFIG_LOCALINI參數,參考:11. 初始化SDK:BRAC_InitSDK

發佈了27 篇原創文章 · 獲贊 2 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章