joinChannelEx abstract method

Future<void> joinChannelEx({
  1. required String token,
  2. required RtcConnection connection,
  3. required ChannelMediaOptions options,
})

加入频道。

调用该方法,你可以同时加入多个频道。如果你想在不同的设备上加入相同的频道,请确保你在不同设备上使用的用户 ID 都不同。 如果你已经在一个频道内,你不能用相同的用户 ID 再次加入该频道。 加入频道前,请确保用于生成 Token 的 App ID 和调用 initialize 方法初始化引擎时使用的是同一个 App ID,否则使用 Token 加入频道会失败。

  • token 在服务端生成的用于鉴权的动态密钥。详见使用 Token 鉴权。 (推荐)如果你的项目开启了安全模式,即选择 APP ID + Token 为鉴权机制,则该参数为必填。 如果你的项目仅开启调试模式,即选择 APP ID 为鉴权机制,则无需填入 Token 即可加入频道。成功加入频道 24 小时后会自动退出该频道。 如果你需要同时加入多个频道或在频道间频繁切换,声网推荐你使用通配 Token 以避免每加入一个新的频道都需向服务端申请一个新的 Token,详见 使用通配 Token
  • connection Connection 信息。详见 RtcConnection 。
  • options 频道媒体设置选项。详见 ChannelMediaOptions 。

Returns 方法成功调用时,无返回值;方法调用失败时,会抛出 AgoraRtcException 异常,你需要捕获异常并进行处理。详见错误码了解详情和解决建议。 < 0:方法调用失败。详见错误码了解详情和解决建议。 -2:传入的参数无效。例如,使用了不合法的 Token, uid 参数未设置为整型,或 ChannelMediaOptions 成员值不合法。你需要填入有效的参数,重新加入频道。 -3: RtcEngine 对象初始化失败。你需要重新初始化 RtcEngine 对象。 -7: RtcEngine 对象尚未初始化。你需要在调用该方法前成功初始化 RtcEngine 对象。 -8: RtcEngine 对象内部状态错误。可能的原因是:调用 startEchoTest 开始通话回路测试后,未调用 stopEchoTest 停止测试就调用该方法加入频道。你需要在该方法前调用 stopEchoTest 。 -17:加入频道被拒绝。可能的原因是用户已经在频道中。建议通过 onConnectionStateChanged 回调判断用户是否在频道中。除收到 connectionStateDisconnected (1) 状态外,不要再次调用该方法加入频道。 -102:频道名无效。你需要在 channelId 中填入有效的频道名,重新加入频道。 -121:用户 ID 无效。你需要在 uid 中填入有效的用户 ID,重新加入频道。

Implementation

Future<void> joinChannelEx(
    {required String token,
    required RtcConnection connection,
    required ChannelMediaOptions options});