技術分享| 音視訊多頻道使用的正確姿勢
阿新 • • 發佈:2021-10-20
為方便使用者同時加入多個頻道,接收多個頻道的音視訊流,anyRTC 從底層架構給予支援多頻道管理,且頻道數量無限制,跟隨我一起探討多頻道的奧祕吧~
在跟蹤客戶需求時,總能聽到客戶說單個頻道支援的人數太少了;我想加入一個頻道後不退出的情況下,加入其他頻道聽取下他們的內容;我想同時進多個頻道進行監聽;我想在大班課上課的同時,給小組分組上課;對講;分屏監控...這些需求 anyRTC 統統可以滿足了~
多頻道架構
方案介紹
每個使用者可以進入多個頻道,且頻道數量不限制,但只能在一個頻道中釋出音視訊流,anyRTC 的回撥中都會帶有頻道標識,開發者只需要做好本地管理即可。
實現方法
SDK 提供
ARtcChannel
類和ARtcChannelDelegate
類實現多頻道控制。你可以多次呼叫createRtcChannel
,通過不同的channelId
建立多個ARtcChannel
物件(對應多個頻道),然後分別呼叫ARtcChannel
中的joinChannelByToken
方法加入對應的頻道。
實現多頻道功能的主要步驟如下:
- 呼叫
sharedEngineWithAppId
方法,建立並初始化ARtcEngineKit
。 - 呼叫
setChannelProfile
方法,將頻道場景設定為直播。 - 呼叫
createRtcChannel
方法,通過channelId
建立一個AgoraRtcChannel
- 呼叫
ARtcChannel
類的setRtcChannelDelegate
方法,接收該頻道的回撥通知。 - 呼叫
ARtcChannel
類的setClientRole
設定使用者角色。 - 呼叫
ARtcChannel
類的joinChannelByToken
方法加入頻道。使用者加入頻道後,預設自動訂閱頻道內所有其他使用者的流。如果想釋出自己的音視訊流到該頻道中,呼叫publish
方法釋出。 - 如果需要加入更多的頻道,重複步驟 3、4、5、6。
加入多個頻道只能在一個頻道中釋出自己,在呼叫釋出的時候,請確保在其他頻道中角色為
Audience
,在要釋出的頻道中設定角色為Broadcaster
。
適用場景
場景1:大班課分組教學
大班課分組教學業界又叫超級小班課,其場景借鑑了視訊會議裡的breakout room功能,將大班進行分組,小組學習討論,符合TBL的教學理念,既不浪費教師資源,又能滿足個性體驗。
一個主講老師同時對多個小班進行授課,班內學生能夠進行互動交流,促進學習。
場景2:網際網路對講
網際網路對講已經逐步進入公共視野,傳統的對講機已經慢慢的被淘汰,傳統對講機面臨距離限制、噪聲嚴重、同時只能訂閱一個頻道等多重問題。anyRTC 網際網路對講方案支援全球對講,採用AI降噪,凸顯人聲消除噪聲,同時支援同時加入多個頻道。
網際網路對講方案已經運用到了智慧小區、智慧排程等行業
更多場景玩法期待開發者發掘~
anyRTC網址:https://www.anyrtc.io/