提交工单
咨询集成、功能及报价等问题
初始化 SDK 之后,使用推拉流功能前,需要先登录房间。
在登录房间之前,必须要提前设置用户信息, userID
与 userName
不能为 nullptr
、空字符串,否则会导致 loginRoom
返回 false
。
userID
还能便于 ZEGO 技术支持帮忙查找定位问题,所以一定要设置成一个有意义的值,开发者可将 userID 与自己业务账号系统进行关联。
注意: 每个 userID
必须唯一,userID
只支持长度不超过 64 字节的数字,下划线,字母,userName
只支持长度不超过 256 字节的任意格式字符串。
ZEGO::LIVEROOM::SetUser(userID, userName);
登录房间之前需要设置房间相关的回调监听,以在成功登录房间后接收房间相关的事件通知,比如处理因网络中断退出房间等问题。
LIVEROOM::SetRoomCallback(this);
建议处理 ZEGO::LIVEROOM::IRoomCallback 中的以下回调接口:
OnDisconnect
:房间与 ZEGO 服务器断开连接的通知;SDK默认在断网后重试300秒,之后依旧没有恢复网络时会收到这个回调,此时推流/拉流都会断开;App 端需要检测网络,在正常联网时重新登录房间,重新推流/拉流。开发者可通过在initSDK前调用setConfig的setConfig("room_retry_time=xxx")
和setConfig("av_retry_time=xxx")
来自定义重试时间,单位为秒。OnKickOut
:该用户被踢出房间的通知;有另外的设备用同样的 userID 登录了相同的房间,造成前面登录的用户被踢出房间,或者后台调用踢人接口将此用户踢出房间;App 应提示用户被踢出房间。
OnStreamUpdated
:房间内有流新增、流删除的通知,在类似视频通话、直播等场景下收到房间流新增通知时拉取此新增流,在收到房间流删除通知时停止拉取此删除流。 其余回调接口请根据业务实际情况进行选择处理,完整的房间回调接口请查看ZEGO::LIVEROOM::IRoomCallback
调用 LoginRoom
登录房间。
注意:需保证 roomID
信息的全局唯一,只支持长度不超过 128 字节 的数字,下划线,字母。
LIVEROOM::LoginRoom(roomID.c_str(), role);
// 在登录回调中
void OnLoginRoom(int errorCode, const char *pszRoomID, const COMMON::ZegoStreamInfo *pStreamInfo, unsigned int streamCount)
{
// pStreamInfo,内部封装了 userID、userName、streamID 和 extraInfo。
// 登录房间成功后,开发者可通过 pStreamInfo 获取到当前房间推流信息,便于后续的拉流操作。
// 当 streamCount 为 0 时说明当前房间没有人推流
if (errorCode == 0)
{
// 登录房间成功
}
else {
// 登录房间失败
}
}
调用如下 API 退出房间。请开发者在退出房间前,确保停止推拉流,并清理相关状态。
示例代码如下:
ZEGO::LIVEROOM::LogoutRoom()
方法 | 描述 |
---|---|
ZEGO::LIVEROOM::SetUser | 设置 UserID 与 UserName |
ZEGO::LIVEROOM::SetRoomCallback | 设置房间回调 |
ZEGO::LIVEROOM::LoginRoom | 登录房间 |
ZEGO::LIVEROOM::LogoutRoom | 退出房间 |
完成了登录房间后,可以使用 ZEGO SDK 依次完成如下功能来实现基础的通话或者直播。
联系我们
文档反馈