subscribeStreamVideo method
@detail api
@valid since 3.60. 自 3.60 起,该接口替代了 subscribeStream, unsubscribeStream, subscribeScreen 和 unsubscribeScreen 方法来实现下述功能。如果你已升级至 3.60 及以上版本,且仍在使用这两个方法,请迁移至该接口。
@region 房间管理
@author xuyiling.x10
@brief 订阅/取消订阅房间内指定的远端视频流。
@param streamId 目标远端视频流 ID。
@param subscribe 是否订阅该视频流。
- true: 订阅。
- false: 取消订阅。
@return 方法调用结果:
- 0:成功;
- <0:失败。具体失败原因参看 ReturnStatus{@link #ReturnStatus}。
@note
- 在调用本接口时已经订阅该远端流(手动订阅或自动订阅),则将根据本次传入的参数,更新订阅配置。
- 你必须先通过 onUserPublishStreamVideo{@link #IRTCRoomEventHandler#onUserPublishStreamVideo} 回调获取当前房间里的远端摄像头流信息,然后调用本方法按需订阅。
- 调用该方法后,你会收到 onVideoSubscribeStateChanged{@link #IRTCRoomEventHandler#onVideoSubscribeStateChanged} 通知方法调用结果。
- 成功订阅远端用户的媒体流后,订阅关系将持续到调用 subscribeStreamVideo{@link #RTCRoom#subscribeStreamVideo} 取消订阅或本端用户退房。
- 关于其他调用异常,你会收到 onVideoSubscribeStateChanged{@link #IRTCRoomEventHandler#onVideoSubscribeStateChanged} 回调通知,具体异常原因参看 SubscribeStateChangeReason{@link #SubscribeStateChangeReason}。
Implementation
Future<int?> subscribeStreamVideo(
{required string streamId, required bool subscribe}) async {
$a() =>
($instance as $p_a.RTCRoom).subscribeStreamVideo(streamId, subscribe);
$i() => ($instance as $p_i.ByteRTCRoom)
.subscribeStreamVideo(streamId, subscribe);
if (Platform.isAndroid) {
return $a();
} else if (Platform.isIOS) {
return $i();
} else {
throw UnsupportedError(
'Not Support Platform ${Platform.operatingSystem}');
}
}