デフォルトでは、同じ部屋にいるユーザーのみが、オーディオストリームとビデオストリームを介して相互に通信できます。 異なる部屋間の情報は隔離されています。 クロスチャネルサブスクリプション機能を使用して、異なる部屋間の通信を有効にし、コストリーミングなどの特定のシナリオでのビジネス要件を満たすことができます。 このトピックでは、クロスチャネルサブスクリプションを実装する方法と、関連するサンプルコードについて説明します。
制御ポリシー機能の動作
ストリーマーA1がルームBのストリーマーB1のストリームをサブスクライブしているときに、ルームBまたはストリーマーB1が存在しない場合、A1はアプリがクロスチャネルサブスクリプションをキャンセルするまで待機します。 これは、処理ロジックを単純化します。
サンプルコード
チャンネル間のオーディオおよびビデオストリームを購読する
Androidのサンプルコード:
/* Subscribe to the camera stream and audio stream of B1 in Room B. */ mAliRtcEngine.subscribeRemoteDestChannelStream("B","B1",AliRtcVideoTrack.AliRtcVideoTrackCamera,true,true);iOSのサンプルコード:
/* Subscribe to the camera stream and audio stream of B1 in Room B. */ [self.engine subscribeRemoteDestChannelStream:@"B" uid:@"B1" track:AliRtcVideoTrackCamera subAudio:YES sub:YES];Windowsのサンプルコード:
/* Subscribe to the camera stream and audio stream of B1 in Room B. */ mAliRtcEngine->SubscribeRemoteDestChannelStream("B","B1",AliEngineVideoTrackCamera,true,true);
オーディオおよびビデオストリームへのクロスチャネルサブスクリプションをキャンセルする
Androidのサンプルコード:
/* Unsubscribe from the camera stream and audio stream of B1 in Room B. */ mAliRtcEngine.subscribeRemoteDestChannelStream("B","B1",AliRtcVideoTrack.AliRtcVideoTrackNo,false,false);iOSのサンプルコード:
/* Unsubscribe from the camera stream and audio stream of B1 in Room B. */ [self.engine subscribeRemoteDestChannelStream:@"B" uid:@"B1" track:AliRtcVideoTrackNo subAudio:NO sub:NO];Windowsのサンプルコード:
/* Unsubscribe from the camera stream and audio stream of B1 in Room B. */ mAliRtcEngine->SubscribeRemoteDestChannelStream("B","B1",AliEngineVideoTrackCamera,false,false);