如何实现主播对观众进行上下麦操作?

最近更新时间:2022-09-20 05:17:40

简介

在实时音视频互动中,主播可以邀请观众上麦互动,也可以将上麦观众变回为普通观众。

在实际应用场景中,你可以结合 anyRTC RTM SDK 的消息发送与频道属性功能,和 anyRTC RTC SDK 的切换用户角色功能,实现主播对观众的上下麦操作。

实现方法

下文展示如何通过 RTM SDK 和 RTC SDK 实现上、下麦功能。使用前,请确保你的项目中已经集成了 RTM SDK 和 RTC SDK。具体的集成文档,请参考:

主播邀请观众上麦的基本 API 时序图如下:

具体步骤如下:

  1. 主播端调用 RTM SDK 的 sendMessageToPeer 方法,向观众发送点对点消息,邀请观众上麦;
  2. 观众端通过 RTM SDK 的 onMessageReceived 回调接收主播的邀请信息;
  3. 观众端调用 RTC SDK 的 setClientRole 方法,并将用户角色设置为主播 CLIENT_ROLE_BROADCASTER
  4. 成功切换角色为主播后,观众端会收到 onClientRoleChanged 回调;
  5. 观众端调用 RTM SDK 的 addOrUpdateChannelAttributes 方法,将角色切换事件通知到频道内的所有用户;
  6. 主播端再通过 RTM SDK 的 onAttributesUpdated 得知该观众已成功切换角色,可以进行音视频互动。

同理,如果想要实现下麦功能,则观众端在收到主播要求下麦的消息后,再次调用 setClientRole,然后将用户角色设置为观众 CLIENT_ROLE_AUDIENCE 即可。

各语言方法对照表

本文提及的方法名均为 Java 语言。其他语言对应的方法名如下表所示:

Java/C++OCJavascript
sendMessageToPeersendMessagesendMessage
onMessageReceivedmessageReceivedMessageFromPeer
setClientRolesetClientRolesetClientRole
onClientRoleChangeddidClientRoleChangedClient.on("client-role-changed")
addOrUpdateChannelAttributesaddOrUpdateChannelAttributesaddOrUpdateChannelAttributes
onAttributesUpdatedattributeUpdateAttributesUpdated