預設情況下,只有同房間的使用者才能進行音視頻流的通訊,不同房間之間的資訊是隔離的。您可以通過跨房間訂閱功能來實現不同房間的通訊,來滿足業務的要求,例如直播連麥等業務情境。本文介紹跨房間訂閱功能的實現原理和範例程式碼。
實現原理
為簡化客戶處理邏輯,跨頻道訂閱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);