天天看點

産品百科 |RTC SDK 如何将通訊模式更新至互動模式

音視訊通信 RTC(Real-Time Communication)是阿裡雲覆寫全球的實時音視訊開發平台,依托核心音視訊編解碼、信道傳輸、網絡排程技術,提供高可用、高品質、超低延時的音視訊通信服務,讓使用者快速搭建多端實時應用,适用于線上教育、視訊會議、互動娛樂、音視訊社交等場景。

産品連結:

https://www.aliyun.com/product/rtc 您可以通過閱讀本文,了解互動模式說明。

背景資訊

針對部分業務場景中,單一頻道存在較多使用者人數,但主要時間内隻有一名主播推流,少量觀衆需要與主播連麥互動的情況,RTC SDK 加入了新的頻道模式(互動模式 AliRtcInteractiveLive)。

通訊模式與互動模式

通訊模式與互動模式的不同,主要展現在以下兩點:

  • 頻道内最大支援人數不同,通信模式目前預設最多是支援 50*50(即 50 個人同時推拉流),互動模式可以支援最多 2*4000(即 2 個人同時推拉流,其餘都是隻拉流)。
  • 通信模式沒有使用者角色的區分,互動模式下增加了使用者角色的設定功能,每位加入頻道的使用者都具備使用者角色,分别為:
    • 互動角色(AliRtcChannelProfileInteractiveLive):允許推流,适用于頻道中的主播與連麥使用者。
    • 觀看角色(AliRtcClientRolelive):隻能訂閱拉流觀看,不能推流,适用于普通觀衆使用者。
  • 同時,所有觀衆角色隻能接受到互動角色的加入頻道,推流,停止推流,離開頻道等狀态通知,不會收到其餘觀衆使用者的信令消息。

說明

同一個頻道裡同時隻能使用一種頻道模式,頻道模式由最早加入頻道的使用者設定,後續加入的使用者也需要使用對應的頻道模式,否則加入頻道失敗。例如,最早一個使用者使用互動模式進入頻道成功後,後續使用者如果再使用通信模式加入頻道将會失敗。當頻道内所有使用者都離開 2 分鐘後,該頻道的頻道模式會被重置,将由之後首個加入頻道的使用者設定的頻道模式重新确定。

由于前期 SDK 版本不支援頻道模式設定,預設以通信模式加入頻道。為避免出現上述因頻道模式不比對而加入失敗問題,建議業務側更新使用互動模式後,強制更新使用者 SDK 版本,均更新完畢之後再啟用,保證同一頻道内使用者頻道模式的統一。

互動模式更新說明

從通信模式更新為互動模式時,推流端和訂閱端需要作出以下接入改變:

推流端

  • 主播在加入頻道之前,先調用 setChannelProfile 接口設定頻道模式為互動模式。
  • 主播可以在加入頻道前調用 setClientRole 接口,将使用者角色設定為互動角色。主播入會之後自動推流,并且可以調整使用者角色資訊,當主播加入頻道成功後保持自動推流。
  • 主播也可以關閉自動推流模式,在加入頻道後,切換角色為互動角色。當主播切換成功後會收到 onUpdateRoleNotify 回調通知,收到回調通知後可以配置需要推流媒體型,調用 publish 接口開始推流。

如果在加入頻道成功前設定使用者角色,預設初始角色即為設定角色,不會接收到角色變更回調。加入頻道成功後再設定使用者角色,設定為不同角色成功時會有回調通知。同時業務側需要記錄一下目前的角色參數值,重複設定目前角色不會收到回調。建議業務側将角色切換和推拉流的邏輯區分開。

使用者必須確定在加入頻道成功的前提下,進行切換角色操作和推流動作,否則無法切換和推流成功。

訂閱端

  • 使用者在加入頻道之前,先調用 setChannelProfile 接口設定頻道模式為互動模式。
  • 使用者可以在加入頻道前調用 setClientRole 接口,将使用者角色設定為觀看角色,關閉自動推流,保持自動訂閱。
  • 當連麥觀衆,在加入頻道成功後,如果業務場景需要連麥,将設定使用者角色為互動角色,設定成功後會收到 onUpdateRoleNotify 回調通知,收到回調通知後可以配置需要推流媒體型,調用 publish 接口開始推流。

    當連麥觀衆下麥時,關閉推流媒體并停止推流,将使用者角色設定回觀衆角色與普通觀衆一樣,保持訂閱拉流即可。

  • 對于普通觀衆,隻需保持觀看角色,訂閱觀看推流媒體,無需其他操作。訂閱操作可參考官網相關文檔說明。
「視訊雲技術」你最值得關注的音視訊技術公衆号,每周推送來自阿裡雲一線的實踐技術文章,在這裡與音視訊領域一流工程師交流切磋。
産品百科 |RTC SDK 如何将通訊模式更新至互動模式