互动视频
  • iOS
  • Android : Java
  • macOS
  • Windows
  • Linux
  • Web
  • 小程序
  • Electron
  • 概述
  • 限制说明
  • SDK 下载
  • 快速开始
  • 常用功能
  • 推拉流进阶
  • 视频进阶
  • 音频进阶
  • 其他功能
  • 废弃接口
  • API 文档
  • 常见错误码
  • 常见问题
  • AI教育
  • KTV 合唱
  • 视频直播
  • 视频通话
  • 游戏直播
  • 直播答题
  • 娃娃机
  • 文档中心
  • 互动视频
  • 快速开始
  • 登录房间

登录房间

更新时间:2021-07-27 19:37

1 功能简介

初始化 SDK 之后,使用推拉流功能前,需要先登录房间

2 使用步骤

2.1 设置用户信息

在登录房间之前,必须要提前设置用户信息, userIDuserName 不能为 null 、空字符串,否则会导致 loginRoom 返回 false

userID 还能便于 ZEGO 技术支持帮忙查找定位问题,所以一定要设置成一个有意义的值,开发者可将 userID 与自己业务账号系统进行关联。

注意: 每个 userID 必须唯一,userID 只支持长度不超过 64 字节的数字,下划线,字母,userName 只支持长度不超过 256 字节的任意格式字符串。


ZegoLiveRoom.setUser(userID, userName); 

2.2 设置房间相关的回调监听

登录房间之前需要设置房间相关的回调监听,以在成功登录房间后接收房间相关的事件通知,比如处理因网络中断退出房间等问题。


zegoLiveRoom.setZegoRoomCallback(new IZegoRoomCallback() {
    // 处理房间回调
    ...
}); 

建议处理 IZegoRoomCallback 中的以下回调接口:

  • onDisconnect:房间与 ZEGO 服务器断开连接的通知;SDK默认在断网后重试300秒,之后依旧没有恢复网络时会收到这个回调,此时推流/拉流都会断开;App 端需要检测网络,在正常联网时重新登录房间,重新推流/拉流。开发者可通过在initSDK前调用setConfigsetConfig("room_retry_time=xxx")setConfig("av_retry_time=xxx")来自定义重试时间,单位为秒。

  • onKickOut:该用户被踢出房间的通知;有另外的设备用同样的 userID 登录了相同的房间,造成前面登录的用户被踢出房间,或者后台调用踢人接口将此用户踢出房间;App 应提示用户被踢出房间。
    注意:业务侧要确保分配的 userID 保持唯一,不然会造成互相抢占。

  • onStreamUpdated:房间内有流新增、流删除的通知,在类似视频通话、直播等场景下收到房间流新增通知时拉取此新增流,在收到房间流删除通知时停止拉取此删除流。

    其余回调接口请根据业务实际情况进行选择处理,完整的房间回调接口请查看 IZegoRoomCallback

2.3 登录房间

调用 loginRoom 登录房间。

注意:需保证 roomID 信息的全局唯一,只支持长度不超过 128 字节 的数字,下划线,字母。


zegoLiveRoom.loginRoom(roomID, role, new IZegoLoginCompletionCallback() {

    @Override
    public void onLoginCompletion(int stateCode, ZegoStreamInfo[] zegoStreamInfos) {
        // zegoStreamInfos,内部封装了 userID、userName、streamID 和 extraInfo。
        // 登录房间成功后,开发者可通过 zegoStreamInfos 获取到当前房间推流信息,便于后续的拉流操作。   
        // 当 listStream 为 null 时说明当前房间没有人推流 
        if (stateCode == 0) {
            Log.i("登录房间成功 roomId : %s", roomID);
        } else {
            // 登录房间失败请查看 登录房间错误码,如果错误码是网络问题相关的,App 提示用户稍后再试,或者 App 内部重试登录。
            Log.i("登录房间失败, stateCode : %d", stateCode);
        }
    }
});

登录房间错误码

2.4 退出房间

调用如下 API 退出房间。请开发者在退出房间前,确保停止推拉流,并清理相关状态。

示例代码如下:


zegoLiveRoom.logoutRoom()

3 API 参考列表

方法 描述
setUser 设置 UserID 与 UserName
setZegoRoomCallback 设置房间代理
loginRoom 登录房间
logoutRoom 退出房间

4 相关文档

完成了登录房间后,可以使用 ZEGO SDK 依次完成如下功能来实现基础的通话或者直播。

本篇目录