startForwardStreamToRooms method

Future<int?> startForwardStreamToRooms(
  1. List<ForwardStreamInfo> forwardStreamInfos
)

@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}');
  }
}