Agora iOS SDK 观众加入频道显示加载页及检测主播离线API使用问题
可用AgoraRtcEngineDelegate相关API及实现方案
rtcEngine:didJoinedOfUid:elapsed:
有远端用户加入频道时该回调会触发。观众加入频道时如果主播已在频道内,你会立刻收到对应主播uid的该回调,可直接标记主播在线。如果你的场景是固定uid的单主播模式,直接匹配回调返回的uid即可;多主播场景可维护在线主播uid列表做统一管理。rtcEngine:userOffline:reason:
远端用户主动离开频道或网络异常掉线时触发该回调,你可以在这里将对应uid从在线列表移除,同步更新UI展示主播离线提示。- 配合加入频道成功回调做超时兜底
调用joinChannelByToken:channelId:info:uid:joinSuccess:加入频道收到成功回调后,启动一个自定义倒计时(推荐3~5秒,可根据业务场景调整),倒计时结束后如果既没有收到对应主播uid的加入回调,也没有收到remoteVideoStateChangedOfUid返回的.decoding状态,直接判定主播未在线,关闭加载页展示离线提示,刚好覆盖你遇到的「进频道时主播已离线无回调触发」的场景。
优化建议
你当前用remoteVideoStateChangedOfUid监听.decoding状态的逻辑可以保留,在收到主播加入回调后,再等视频流解码成功再切播放页,可以避免主播在线但推流异常导致的播放失败问题。
内容的提问来源于stack exchange,提问作者Matsumoto
相关产品推荐
相关产品推荐

