1. 程式人生 > 其它 >技術分享| 音視訊多頻道使用的正確姿勢

技術分享| 音視訊多頻道使用的正確姿勢

為方便使用者同時加入多個頻道,接收多個頻道的音視訊流,anyRTC 從底層架構給予支援多頻道管理,且頻道數量無限制,跟隨我一起探討多頻道的奧祕吧~

在跟蹤客戶需求時,總能聽到客戶說單個頻道支援的人數太少了;我想加入一個頻道後不退出的情況下,加入其他頻道聽取下他們的內容;我想同時進多個頻道進行監聽;我想在大班課上課的同時,給小組分組上課;對講;分屏監控...這些需求 anyRTC 統統可以滿足了~

多頻道架構

方案介紹

每個使用者可以進入多個頻道,且頻道數量不限制,但只能在一個頻道中釋出音視訊流,anyRTC 的回撥中都會帶有頻道標識,開發者只需要做好本地管理即可。

實現方法

SDK 提供 ARtcChannel

類和 ARtcChannelDelegate 類實現多頻道控制。你可以多次呼叫 createRtcChannel,通過不同的 channelId 建立多個 ARtcChannel 物件(對應多個頻道),然後分別呼叫 ARtcChannel 中的 joinChannelByToken 方法加入對應的頻道。

實現多頻道功能的主要步驟如下:

  1. 呼叫 sharedEngineWithAppId 方法,建立並初始化 ARtcEngineKit
  2. 呼叫 setChannelProfile方法,將頻道場景設定為直播。
  3. 呼叫 createRtcChannel 方法,通過 channelId 建立一個 AgoraRtcChannel
    物件。
  4. 呼叫 ARtcChannel 類的 setRtcChannelDelegate方法,接收該頻道的回撥通知。
  5. 呼叫 ARtcChannel 類的 setClientRole 設定使用者角色。
  6. 呼叫 ARtcChannel 類的 joinChannelByToken 方法加入頻道。使用者加入頻道後,預設自動訂閱頻道內所有其他使用者的流。如果想釋出自己的音視訊流到該頻道中,呼叫publish方法釋出。
  7. 如果需要加入更多的頻道,重複步驟 3、4、5、6。

加入多個頻道只能在一個頻道中釋出自己,在呼叫釋出的時候,請確保在其他頻道中角色為Audience,在要釋出的頻道中設定角色為Broadcaster

適用場景

場景1:大班課分組教學

大班課分組教學業界又叫超級小班課,其場景借鑑了視訊會議裡的breakout room功能,將大班進行分組,小組學習討論,符合TBL的教學理念,既不浪費教師資源,又能滿足個性體驗。

一個主講老師同時對多個小班進行授課,班內學生能夠進行互動交流,促進學習。

場景2:網際網路對講

網際網路對講已經逐步進入公共視野,傳統的對講機已經慢慢的被淘汰,傳統對講機面臨距離限制、噪聲嚴重、同時只能訂閱一個頻道等多重問題。anyRTC 網際網路對講方案支援全球對講,採用AI降噪,凸顯人聲消除噪聲,同時支援同時加入多個頻道。

網際網路對講方案已經運用到了智慧小區、智慧排程等行業

更多場景玩法期待開發者發掘~

anyRTC網址:https://www.anyrtc.io/