joinChannel method
- String token,
- String optionalInfo,
- int optionalUid,
- ChannelMediaOptions options
使用 UID 加入频道。
该方法与 RtcEngine 类下的 RtcEngine.joinChannel 方法有以下区别:
- RtcChannel.joinChannel
- 无
channelName
参数。因为创建RtcChannel
对象时已指定了channelName
。 - 加了
options
参数,可在加入频道前通过该参数设置是否订阅该频道的音视频流。 - 通过创建多个
RtcChannel
对象,并调用相应对象的joinChannel
方法,实现同时加入多个频道。 - 通过该方法加入频道后,SDK 默认不发布本地音视频流到本频道,用户需要调用
publish
方法进行发布。
- 无
- RtcEngine.joinChannel
- 需要填入可以标识频道的
channelName
。 - 无
options
参数。加入频道即默认订阅频道内的音视频流。 - 只允许加入一个频道。
- 通过该方法加入频道后,SDK 默认发布音视频流发布到本频道。
- 需要填入可以标识频道的
用户成功加入(切换)频道后,默认订阅频道内所有其他用户的音频流和视频流,因此产生用量并影响计费。如果想取消订阅,可以通过调用相应的 mute
方法实现。
Note
- 该方法不支持相同的用户重复加入同一个频道。
- Agora 建议不同频道中使用不同的 UID。
- 如果想要从不同的设备同时接入同一个频道,请确保每个设备上使用的 UID 是不同的。
- 请确保用于生成 Token 的 App ID 和创建 RtcEngine 对象时用的 App ID 一致。
Parameter token
在 App 服务器端生成的用于鉴权的 Token。详见从服务端生成 Token。
Parameter optionalInfo
开发者需加入的任何附加信息。一般可设置为空字符串,或频道相关信息。该信息不会传递给频道内的其他用户。
Parameter optionalUid
用户 ID,32 位无符号整数。建议设置范围:1 到 (232-1),并保证唯一性。
如果不指定(即设为 0),SDK 会自动分配一个,
并在 RtcChannelEvents.JoinChannelSuccess
回调方法中返回,App 层必须记住该返回值并维护,SDK 不对该返回值进行维护。
Parameter options
频道媒体设置选项。详见 ChannelMediaOptions。
Implementation
@override
Future<void> joinChannel(String token, String optionalInfo, int optionalUid,
ChannelMediaOptions options) {
return _invokeMethod('joinChannel', {
'token': token,
'optionalInfo': optionalInfo,
'optionalUid': optionalUid,
'options': options.toJson()
});
}