You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Flutter中使用Agora视频通话踢除参会用户?

Flutter音视频通话实现踢除参会用户方案

核心说明

RtcEngine客户端SDK本身没有直接的“踢人”API,踢除用户需要结合业务逻辑判定+客户端RTC操作+(可选)服务端API配合来实现,以下是具体步骤:

步骤1:权限判定(业务层)

只有拥有房间管理权限的用户(比如房主/主持人)才能执行踢人操作,先在业务侧完成权限校验,避免非法操作。

步骤2:主持人端操作

  1. 禁用被踢用户的音视频流:调用RtcEngine的以下两个函数,让其他参会者无法看到/听到目标用户:
    // 禁用目标用户的音频流
    await rtcEngine.muteRemoteAudioStream(targetUid, true);
    // 禁用目标用户的视频流
    await rtcEngine.muteRemoteVideoStream(targetUid, true);
    
  2. 发送踢人通知:通过业务信令通道(比如实时消息服务、自定义WebSocket)向目标用户发送“已被移出房间”的通知。

步骤3:被踢用户端操作

收到踢人通知后,调用RtcEngine的离开房间函数主动退出通话:

await rtcEngine.leaveChannel();
// 后续可更新UI,提示用户已被移出

可选:服务端强制踢人(更严谨)

如果需要强制让用户离开(比如用户客户端未响应通知),可以调用对应音视频服务商的服务端REST API(如Agora的/kickUser接口),直接将目标用户从房间中移除。此时被踢用户的客户端会收到onUserOffline回调,可在该回调中处理离开逻辑:

rtcEngine.setEventHandler(RtcEngineEventHandler(
  onUserOffline: (int uid, UserOfflineReason reason) {
    if (reason == UserOfflineReason.kickedByAdmin) {
      // 处理被踢逻辑,比如弹出提示、退出房间
      await rtcEngine.leaveChannel();
    }
  },
));

内容的提问来源于stack exchange,提问作者saeed z

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 18:01:18