本文介绍如何使用声网 SDK 实现视频 PK 连麦场景的重要功能。
参考下图,在你的项目中实现如下功能:
对照下表,将相应的 SDK 或服务集成到你的项目中。
产品 | SDK 下载 | 集成文档 |
---|---|---|
声网 RTC (Real-time Communication) SDK | iOS 视频互动直播 SDK | 实现互动直播 |
声网 RTM (Real-time Messaging) SDK | iOS 云信令(原实时消息) SDK | 收发点对点消息和频道消息 |
第三方美颜 SDK | N/A | iOS 平台集成开发 |
下图展示如何调用声网的 API 实现一个视频 PK 连麦场景。你可以参考如下 API 时序图进行相应的实现。
API | 实现功能 |
---|---|
initWithAppId | 创建并返回一个 RtmClient 实例。 |
loginByToken | 登录声网 RTM 系统。登录后你可以使用 RTM 的核心业务逻辑。 |
createChannelWithId | 创建声网 RTM 频道。一个 RtmClient 可以创建多个频道。 |
joinWithCompletion | 加入声网 RTM 频道。 |
sendMessage | 发送频道消息。成功发送后,频道内所有用户都能收到。 |
sendMessage | 发送点对点消息,可用于主播向另一个房间的主播发送 PK 连麦邀请。 |
leaveWithCompletion | 离开 RTM 频道。 |
logoutWithCompletion | 登出声网 RTM 系统。 |
API | 实现功能 |
---|---|
sharedEngineWithAppId | 初始化 AgoraRtcEngineKit 对象。 |
setChannelProfile | 设置频道场景。本场景中,我们将频道属性设为直播。 |
setClientRole | 设置直播场景下的用户角色。 |
enableVideo | 开启视频。 |
setupLocalVideo | 设置本地视图。主播需要调用该方法,才能在本地看到自己的画面。 |
joinChannelByToken | 加入 RTC 频道。 |
startChannelMediaRelay | 开始跨频道媒体流转发。这是实现跨直播间连麦场景的 API。 |
setupRemoteVideo | 设置远端视图。目标频道主播同意连麦 PK 后,源频道主播需要调用该方法,才能看到连麦主播的视频画面。 |
stopChannelMediaRelay | 停止跨频道媒体流转发。 |
leaveChannel | 离开 RTC 频道。 |
美颜
声网 Live 使用第三方的 SDK 实现美颜功能。你可以参考示例代码里 faceunity 文件中的逻辑进行实现。
网络质量检测
使用 reportRtcStats
回调,在你的项目中实现网络质量检测和报告功能。该回调统计当前通话数据,包括本地的数据发送和接收码率以及丢包率等。在通话或直播过程中每两秒触发一次。
本地禁音、禁视频
调用 muteLocalAudioStream
和 muteLocalVideoStream
方法,来停止发送本地音频流、视频流。
耳返
调用 enableInEarMonitoring
方法开启主播的耳返功能。
混音及音效
加入频道后,调用 startAudioMixing
方法,可以播放音乐文件,实现播放背景音乐的功能。调用 playEffect
方法,播放音效文件,实现鼓掌、欢呼、尖叫等氛围音效果。