startForwardStreamToRooms method
@detail api
@author shenpengliang
@brief 开始跨房间转发媒体流。
在调用 joinRoom{@link #RTCRoom#joinRoom} 后调用本接口,实现向多个房间转发媒体流,适用于跨房间连麦等场景。
@param forwardStreamInfos 跨房间媒体流转发指定房间的信息。参看 ForwardStreamInfo{@link #ForwardStreamInfo}。
@return
- 0: 成功。
- < 0: 失败。查看 ReturnStatus{@link #ReturnStatus} 获得更多错误说明。
@note
- 调用本方法后,将在本端触发 onForwardStreamStateChanged{@link #IRTCRoomEventHandler#onForwardStreamStateChanged} 回调。
- 调用本方法后,你可以通过监听 onForwardStreamEvent{@link #IRTCRoomEventHandler#onForwardStreamEvent} 回调来获取各个目标房间在转发媒体流过程中的相关事件。
- 开始转发后,目标房间中的用户将接收到本地用户进房 onUserJoined{@link #IRTCRoomEventHandler#onUserJoined} 和发流 onUserPublishStreamVideo{@link #IRTCRoomEventHandler#onUserPublishStreamVideo}、onUserPublishStreamAudio{@link #IRTCRoomEventHandler#onUserPublishStreamAudio} 回调。
- 调用本方法后,可以调用 updateForwardStreamToRooms{@link #RTCRoom#updateForwardStreamToRooms} 更新目标房间信息,例如,增加或减少目标房间等。
- 调用本方法后,可以调用 stopForwardStreamToRooms{@link #RTCRoom#stopForwardStreamToRooms} 停止向所有房间转发媒体流。
- 调用本方法后,可以调用 pauseForwardStreamToAllRooms{@link #RTCRoom#pauseForwardStreamToAllRooms} 暂停向所有房间转发媒体流。
Implementation
Future<int?> startForwardStreamToRooms(
List<ForwardStreamInfo> forwardStreamInfos) async {
$a() =>
($instance as $p_a.RTCRoom).startForwardStreamToRooms(forwardStreamInfos
.map(($item) => unpackObject<$p_a.ForwardStreamInfo>($item))
.toList());
$i() => ($instance as $p_i.ByteRTCRoom).startForwardStreamToRooms(
forwardStreamInfos
.map(($item) =>
unpackObject<$p_i.ByteRTCForwardStreamConfiguration>($item))
.toList());
if (Platform.isAndroid) {
return $a();
} else if (Platform.isIOS) {
return $i();
} else {
throw UnsupportedError(
'Not Support Platform ${Platform.operatingSystem}');
}
}