2024/10/23 15:19:57
集成要点
本文介绍实现秀场直播时的 RTC SDK 集成要点:
-
SDK 初始化:
- 除非出现特殊情况,建议创建一个
RtcEngine
实例,即创建单实例。 - 检查并确认
RtcEngineConfig
中设置的字段是否正确,例如mAppId
字段。
- 除非出现特殊情况,建议创建一个
-
频道相关设置:
- 将频道配置为直播场景:使用
setChannelProfile
将频道配置为CHANNEL_PROFILE_LIVE_BROADCASTING(1)
。 - 检查音频设置是否符合场景:使用
setAudioProfile
进行适当的音频配置。 - 检查音频场景设置是否符合场景:使用
setAudioScenario
进行适当的音频场景配置。
- 将频道配置为直播场景:使用
-
视频设置:
- 检查视频编码分辨率、帧率和码率设置:使用
setVideoEncoderConfiguration
进行适当的视频设置。
- 检查视频编码分辨率、帧率和码率设置:使用
-
用户角色设置:
- 在直播场景下,SDK 默认将用户角色设置为观众,即
CLIENT_ROLE_AUDIENCE(2)
。 - 当你调用
setClientRole
切换主播和观众角色时,等待收到切换角色成功的回调后才算成功。onClientRoleChanged
为直播场景下用户角色已切换回调。onClientRoleChangeFailed
为直播场景下切换用户角色失败回调。
- 在直播场景下,SDK 默认将用户角色设置为观众,即
-
Token 使用和安全性:
- 进房前提前获取 Token。
- 观众可以使用通配 Token。
- 使用
renewToken
更新 Token。 - 关注 Token 相关的回调,如 Token 过期回调和 Token 即将过期回调。
onRequestToken
为 Token 已过期回调。onTokenPrivilegeWillExpire
为 Token 服务将在 30 秒内过期回调。 - 对于敏感业务接口信息,加密以防止 Token 泄露。
- 建议在 Token 有效期前主动更新 Token。
-
预览和加入频道:
- 进房前进行本地视频预览,并使用
setupLocalVideo
初始化本地视图。 - 使用
joinChannel
加入频道,并推荐设置用户 ID 为 Integer 型,而非 String 型。 - 等待收到成功加入频道或成功重新加入频道回调后才算成功加入。
onJoinChannelSuccess
为成功加入频道回调。onRejoinChannelSuccess
为成功重新加入频道回调。
- 进房前进行本地视频预览,并使用
-
远端用户视图和画面设置:
- 初始化远端用户视图:使用
setupRemoteVideo
初始化远端用户的视频视图。 - 注意镜像和画面适配设置,避免出现黑框或裁剪过多的情况。
- 初始化远端用户视图:使用
-
防炸房与应对炸房:
- 参考预防和应对炸房捣乱现象最佳实践规避炸房风险。
-
销毁 RTC 引擎:
- 推荐在异步线程销毁 RTC 引擎,在退出应用程序或不再需要使用 RTC 服务时,使用
destroy
异步销毁 RTC 引擎。
- 推荐在异步线程销毁 RTC 引擎,在退出应用程序或不再需要使用 RTC 服务时,使用
-
关键回调:
- 监听一些重要的回调,如远端用户加入频道、离开频道、网络连接中断等:
onUserJoined
:远端用户(通信场景)/主播(直播场景)加入当前频道回调。onUserOffline
:远端用户(通信场景)/主播(直播场景)离开当前频道回调onConnectionLost
:网络连接中断,且 SDK 无法在 10 秒内连接服务器回调。onConnectionStateChanged
:网络连接状态已改变回调。
- 根据业务需求,处理音频和视频发布状态改变的回调。
onAudioPublishStateChanged
:音频发布状态改变回调。onVideoPublishStateChanged
:视频发布状态改变回调。
- 监听一些重要的回调,如远端用户加入频道、离开频道、网络连接中断等:
-
控制同时发流人数:
- 默认情况下,SDK 支持单个频道内同时发流的人数为 17。注意控制同时发流的人数。
- 如果需要调整同时发流人数限制,请联系技术支持。
-
回调中的注意事项:
- 避免在回调中进行耗时操作,不要在回调中调用其他 RTC SDK API,以避免死锁等问题。
如需了解本文提到的 API,请查看 API 参考。