房间管理
主要包括加入、离开房间,发布、取消、静默本地媒体流,订阅、取消订阅远端媒体流,远端用户的管理,以及服务端合流相关的配置等。
日志配置
// 配置 SDK 日志信息,如果名字相同,则进程每次启动会覆盖原来的日志文件
// 日志文件大小上限为 100 M,SDK 内部写入时会自动检测
// @param level_ 日志等级,等级越低日志越多
// @param dir_name_ 日志存储目录,如果不存在则自动创建
// @param file_name_ 日志文件名
static int SetLogParams(
QNLogLevel level_,
const std::string& dir_name_,
const std::string& file_name_
);
在 SDK 初始化时,需首先初始化 SDK log 输出配置,包括存储目录和文件名,中途不能修改;同时 SDK 为了保证磁盘占用过多从而导致其它问题,SDK 内部会自动保证 log 文件不会超过 100M。
断线重连
// 配置信令信令间隔,影响监控网络断开的灵敏度
// 间隔越低,越可以更快的检测到网络断开
// @param interval_seconds_ 信令心跳间隔,可设置范围为 1~ 10;单位:秒
virtual void SetHeartBeatInterval(int interval_seconds_ = 3) = 0;
此接口可用与配置 SDK 对于网络状态监控的灵敏度,值越低可以更快的检测到网络断开,并自动重连,SDK 内部每次重连间隔时间为 1 秒,直至重连成功。
注:需在加入房间前配置。
加入/离开房间
- 加入房间
virtual int JoinRoom(const std::string& room_token_, const std::string& user_data_ = "") = 0;
此方法为异步方法,如果返回值为 0,则执行结果在 QNRoomListener::OnJoinResult
进行通知,错误码请参考错误码列表;加入房间成功后,才能进行发布、订阅、踢人、合流等操作;
- 离开房间
virtual int LeaveRoom() = 0;
此方法为同步方法,没有回调通知;
注:
RoomToken
建议开发者的应用程序从自己产品的 Server 端获取,关于 Server 如何生成 token 可查阅服务端开发文档。
踢人
- 将用户 user_id_ 踢出房间
virtual int KickoutUser(const std::string& user_id_) = 0;
此方法需要拥有相应的 admin
权限(获取RoomToken
时指定)才可以操作,此方法为异步方法,实际执行结果通过 QNRoomListener::OnKickoutResult
进行通知,操作成功后,对方将收到 QNRoomListener::OnLeave
消息,取消所有已发布 Track 后离开房间;