本文介绍如何使用 Agora SDK 实现多人连麦直播的重要功能。

基础流程图

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

  • 登录登出

  • 麦位控制

集成指引

对照下表,将相应的 SDK 或服务集成到你的项目中。

产品 SDK 下载 集成文档
Agora RTC (Real-time Communication) SDK Android 视频互动直播 SDK 实现互动直播
Agora RTM (Real-time Messaging) SDK Android 实时消息 SDK 收发点对点消息和频道消息
第三方美颜 SDK N/A Android 平台集成开发

核心 API 时序图

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

下图中使用的云服务是 Agora 实现的。如果你需要使用相同功能,需要自行部署。
  • 房主加入直播间并开始直播:

  • 房主邀请观众上麦、禁麦、封麦

  • 观众申请上麦、主动下麦

核心 API 参考

  • Agora RTM SDK
API 实现功能
createInstance 创建并返回一个 RtmClient 实例。
login 登录 Agora RTM 系统。登录后你可以使用 RTM 的核心业务逻辑。
createChannel 创建 Agora RTM 频道。
join 加入 Agora RTM 频道。
sendMessage 发送频道消息。成功发送后,频道内所有用户都能收到。
sendMessageToPeer 发送点对点消息,可用于主播向观众发送上麦邀请;也可用于观众向主播发送上麦申请。
onMessageReceived 收到频道消息回调。
leave 离开 RTM 频道。
logout 登出 Agora RTM 系统。
  • Agora RTC SDK
API 实现功能
create 创建 RtcEngine 实例。
setChannelProfile 设置频道场景。本场景中,我们将频道场景设为直播。
setClientRole 设置直播场景下的用户角色。该方法可实现用户的上下麦。
enableVideo 开启视频。
setupLocalVideo 设置本地视图。房主或连麦主播需要调用该方法,才能在本地看到自己的画面。
joinChannel 加入 RTC 频道。
setupRemoteVideo 设置远端视图。房主或连麦主播需要调用该方法,观众才能看到他们的画面。
muteLocalAudioStream 停止发布本地音频流。该方法可以搭配 RTM SDK 的 sendMessageToPeer 方法使用,实现禁麦/解禁功能。
muteLocalVideoStream 停止发布本地视频流。该方法可以搭配 RTM SDK 的 sendMessageToPeer 方法使用,实现禁麦/解禁功能。
leaveChannel 离开 RTC 频道。

附加功能

美颜

Agora Live 使用第三方的 SDK 实现美颜功能。你可以参考示例代码里 faceunity 文件中的逻辑进行实现。

网络质量检测

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

耳返

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

混音及音效

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

开源示例代码

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