全部產品
Search
文件中心

ApsaraVideo Live:跨房間訂閱功能

更新時間:Jun 30, 2024

預設情況下,只有同房間的使用者才能進行音視頻流的通訊,不同房間之間的資訊是隔離的。您可以通過跨房間訂閱功能來實現不同房間的通訊,來滿足業務的要求,例如直播連麥等業務情境。本文介紹跨房間訂閱功能的實現原理和範例程式碼。

實現原理

為簡化客戶處理邏輯,跨頻道訂閱B房間B1主播時,如果B房間不存在或者B1不存在,A1會等待到B1直到App主動取消訂閱。

範例程式碼

跨頻道訂閱音視頻流

  • Android範例程式碼:

    /* 跨頻道訂閱B頻道的B1的Camera流、音頻流 */
    mAliRtcEngine.subscribeRemoteDestChannelStream("B","B1",AliRtcVideoTrack.AliRtcVideoTrackCamera,true,true);
  • iOS範例程式碼:

    /* 跨頻道訂閱B頻道的B1的Camera流、音頻流 */
    [self.engine subscribeRemoteDestChannelStream:@"B" uid:@"B1" track:AliRtcVideoTrackCamera subAudio:YES sub:YES];
  • Windows範例程式碼

    /* 跨頻道訂閱B頻道的B1的Camera流、音頻流 */
    mAliRtcEngine->SubscribeRemoteDestChannelStream("B","B1",AliEngineVideoTrackCamera,true,true);

取消跨頻道訂閱音視頻流

  • Android範例程式碼:

    /* 取消跨頻道訂閱B頻道的B1的Camera流、音頻流 */
    mAliRtcEngine.subscribeRemoteDestChannelStream("B","B1",AliRtcVideoTrack.AliRtcVideoTrackNo,false,false);
  • iOS範例程式碼:

    /* 取消跨頻道訂閱B頻道的B1的Camera流、音頻流 */
    [self.engine subscribeRemoteDestChannelStream:@"B" uid:@"B1" track:AliRtcVideoTrackNo subAudio:NO sub:NO];
  • Windows範例程式碼

    /* 取消跨頻道訂閱B頻道的B1的Camera流、音頻流 */
    mAliRtcEngine->SubscribeRemoteDestChannelStream("B","B1",AliEngineVideoTrackCamera,false,false);