createRTCRoom method
@detail api
@author shenpengliang
@brief 创建 RTC 房间实例。
调用此方法仅返回一个房间实例,你仍需调用 joinRoom{@link #RTCRoom#joinRoom} 才能真正地创建/加入房间。
多次调用此方法以创建多个 RTCRoom{@link #RTCRoom} 实例。分别调用各 RTCRoom 实例中的 joinRoom{@link #RTCRoom#joinRoom} 方法,同时加入多个房间。
多房间模式下,用户可以同时订阅各房间的音视频流。
@param roomId 标识通话房间的房间 ID。该字符串符合正则表达式:[a-zA-Z0-9_\@\\-\\.]{1,128}。
@return 创建的 RTCRoom{@link #RTCRoom} 房间实例。
返回 NULL 时,请确认指定房间是否已经存在或 roomId 格式错误。
@note
- 如果需要加入的房间已存在,你仍需先调用本方法来获取 RTCRoom 实例,再调用 joinRoom{@link #RTCRoom#joinRoom} 加入房间。
- 请勿使用同样的 roomId 创建多个房间,否则后创建的房间实例会替换先创建的房间实例。
- 如果你需要在多个房间发布音视频流,无须创建多房间,直接调用 startForwardStreamToRooms{@link #RTCRoom#startForwardStreamToRooms} 开始跨房间转发媒体流。
Implementation
Future<RTCRoom?> createRTCRoom(string roomId) async {
$a() async => packObject(
await ($instance as $p_a.RTCEngine).createRTCRoom(roomId),
() => RTCRoom());
$i() async => packObject(
await ($instance as $p_i.ByteRTCEngine).createRTCRoom(roomId),
() => RTCRoom());
if (Platform.isAndroid) {
return $a();
} else if (Platform.isIOS) {
return $i();
} else {
throw UnsupportedError(
'Not Support Platform ${Platform.operatingSystem}');
}
}