本文介绍如何使用 Agora SDK 实现虚拟主播场景的重要功能。

基础流程图

参考下图,在你的项目中实现如下功能:

  • 登录登出

  • 上下麦控制

集成指引

产品 SDK 下载 集成文档
Agora RTC (Real-time Communication) SDK iOS 视频互动直播 SDK 实现互动直播
Agora RTM (Real-time Messaging) SDK iOS 实时消息 SDK 收发点对点消息和频道消息
第三方虚拟形象驱动 SDK N/A 参考第三方虚拟形象驱动 SDK 的集成文档

核心 API 时序图

下图展示如何调用 Agora 的 API 实现一个多人连麦直播场景。你可以参考如下 API 时序图进行相应的实现。

下图中使用的云服务是 Agora 实现的。如果你需要使用相同功能,需要自行部署。
  • 通过自采集实现虚拟形象

  • 房主加入直播间并开始直播

  • 连麦主播上下麦

核心 API 参考

  • Agora RTM SDK
API 实现功能
initWithAppId 创建并返回一个 RtmClient 实例。
loginByToken 登录 Agora RTM 系统。登录后你可以使用 RTM 的核心业务逻辑。
createChannelWithId 创建 Agora RTM 频道。
joinWithCompletion 加入 Agora RTM 频道。
sendMessage 发送频道消息。成功发送后,频道内所有用户都能收到。
sendMessage 发送点对点消息,可用于主播向观众发送上麦邀请;也可用于观众向主播发送上麦申请。
messageReceived 收到频道消息回调。
messageReceived 收到点对点消息回调。
leaveWithCompletion 离开 RTM 频道。
logoutWithCompletion 登出 Agora RTM 系统。
  • Agora RTC SDK
API 实现功能
sharedEngineWithAppId 初始化 AgoraRtcEngineKit 对象。
setChannelProfile 设置频道场景。本场景中,我们将频道场景设为直播。
setClientRole 设置直播场景下的用户角色。该方法可实现用户的上下麦。
enableVideo 开启视频。
setupLocalVideo 设置本地视图。房主或连麦主播需要调用该方法,才能在本地看到自己的画面。
joinChannelByToken 加入 RTC 频道。
setupRemoteVideo 设置远端视图。房主或连麦主播需要调用该方法,观众才能看到他们的画面。
leaveChannel 离开 RTC 频道。
setVideoSource 设置自定义视频源。
consumePixelBuffer 接收 PixelBuffer 视频数据。
startPreview 开启视频预览。

附加功能

网络质量检测

使用 onRtcStats 回调,在你的项目中实现网络质量检测和报告功能。该回调统计当前通话数据,包括本地的数据发送和接收码率以及丢包率等。在通话或直播过程中每两秒触发一次。

耳返

调用 enableInEarMonitoring 方法开启主播的耳返功能。

混音及音效

加入频道后,调用 startAudioMixing 方法,可以播放音乐文件,实现播放背景音乐的功能。调用 playEffect 方法,播放音效文件,实现鼓掌、欢呼、尖叫等氛围音效果。

开源示例代码

我们也在 GitHub 上提供了虚拟主播的开源示例项目,你也可以前往下载,或查看其中的源代码。