简介
在实时音视频互动中,主播可以邀请观众上麦互动,也可以将上麦观众变回为普通观众。
在实际应用场景中,你可以结合 anyRTC RTM SDK 的消息发送与频道属性功能,和 anyRTC RTC SDK 的切换用户角色功能,实现主播对观众的上下麦操作。
实现方法
下文展示如何通过 RTM SDK 和 RTC SDK 实现上、下麦功能。使用前,请确保你的项目中已经集成了 RTM SDK 和 RTC SDK。具体的集成文档请参考:
主播邀请观众上麦的基本 API 时序图如下:
具体步骤如下:
- 主播端调用 RTM SDK 的
sendMessageToPeer
方法,向观众发送点对点消息,邀请观众上麦; - 观众端通过 RTM SDK 的
onMessageReceived
回调接收主播的邀请信息; - 观众端调用 RTC SDK 的
setClientRole
方法,并将用户角色设置为主播CLIENT_ROLE_BROADCASTER
; - 成功切换角色为主播后,观众端会收到
onClientRoleChanged
回调; - 观众端调用 RTM SDK 的
addOrUpdateChannelAttributes
方法,将角色切换事件通知到频道内的所有用户; - 主播端再通过 RTM SDK 的
onAttributesUpdated
得知该观众已成功切换角色,可以进行音视频互动。
同理,如果想要实现下麦功能,则观众端在收到主播要求下麦的消息后,再次调用 setClientRole
,然后将用户角色设置为观众 CLIENT_ROLE_AUDIENCE
即可。
各语言方法对照表
本文提及的方法名均为 Java 语言。其他语言对应的方法名如下表所示:
Java/C++ | OC | Javascript |
---|---|---|
sendMessageToPeer | sendMessage | sendMessage |
onMessageReceived | messageReceived | MessageFromPeer |
setClientRole | setClientRole | setClientRole |
onClientRoleChanged | didClientRoleChanged | Client.on("client-role-changed") |
addOrUpdateChannelAttributes | addOrUpdateChannelAttributes | addOrUpdateChannelAttributes |
onAttributesUpdated | attributeUpdate | AttributesUpdated |