超大房间直播互动
更新时间: 2023/05/10 08:55:45
本文介绍如何通过 NERoom 实现超大房间直播互动,满足体育赛事直播、秀场直播、企业大型会议、在线教育等用户数上千或上万的应用场景。
应用场景
- 体育赛事直播:主播创建房间直播世界杯等体育赛事,球迷们加入直播间一起观赛,边看边聊。用户可以举手上麦,与房间内其他上麦的观众进行实时的语音聊天,而其他不上麦的观众可以观看并收听麦上用户之间的交流,并通过文字、表情等形式对比赛进行点评和互动。
- KOL 秀场直播:随着网红经济持续火爆,网红大 V 直播间的观众人数常常超过百万。NERoom 超大房间直播能力,助力您快速搭建属于自己的娱乐社交平台。
- 企业大型会议:企业年会、培训大会、学术研讨会等企业大型会议的场景中,需要发言的用户可以举手上麦,与主持人进行实时语音聊天。
- 互动大班课: 老师创建课堂进行线上教学,成千上万学生在线观看,学生通过连麦与老师互动,让课堂互动畅通无阻。主要用于 K12 教育、留学语言培训、职业技能培训、公考求职、兴趣培养等线上互动教学场景。
使用限制
功能 | 限制 |
---|---|
连麦观众人数 | 50人 |
普通观众人数 | 无限制 |
收发消息 | 支持 |
音视频互动 | 支持 |
前提条件
已开通 NERoom 房间组件,并且绑定互动直播模板。
功能原理
原理说明如下:
- 用户加入 NERoom 房间时,设置用户的角色是连麦观众或普通观众。
- 连麦观众通过 RTC 进行音视频互动。
- 普通观众支持消息互动,通过播放器拉流观看主播和麦上观众的视频。
- 普通观众进出房间事件通过
onReceiveChatroomMessages
回调中的NERoomChatNotificationMessage
消息来通知,NERoom 服务器不再管理普通成员的成员列表,将成员列表完全托管给聊天室,以此来节省开支。 - 如果需要获取普通观众的成员列表,请通过
NERoomChatController
中的fetchChatroomMembers
接口来获取。
时序图
主播创建并加入大房间
普通观众加入并切换到连麦观众
连麦观众加入并切换到普通观众
实现方法
-
创建房间时,设置房间属性为直播场景。
调用
NERoomService.createRoom
接口创建房间,将NECreateRoomParams.roomProfile
参数设置为LIVE_BROADCASTING
直播场景,该场景中支持超大房间。 -
加入房间。
-
观众角色切换。
调用changeMemberRole接口,实现普通观众和麦上观众的角色切换。角色切换成功后,本端触发
onMemberRoleChanged
回调。- 从麦上观众切换为普通观众时,远端用户触发
onUserLeaved
回调。 - 从普通观众切换为麦上观众时,远端用户触发
onUserJoined
回调。
- 从麦上观众切换为普通观众时,远端用户触发
示例代码
// 创建直播大房间
NECreateRoomParams params = new NECreateRoomParams("123", "直播房测试", templateId, null, null, new HashMap(), NERoomProfile.LIVE_BROADCASTING);
NERoomKit.getInstance().getRoomService().createRoom(params, null, callback);
// 主播加入
NEJoinRoomParams joinParams = new NEJoinRoomParams("123", "主播", null, "host", null, new HashMap());
NERoomKit.getInstance().getRoomService().joinRoom(joinParams, callback);
// 普通观众加入
NEJoinRoomParams joinParams = new NEJoinRoomParams("123", "普通观众", null, NERoomBuiltinRole.Observer, null, new HashMap());
NERoomKit.getInstance().getRoomService().joinRoom(joinParams, callback);
// 连麦观众加入
NEJoinRoomParams joinParams = new NEJoinRoomParams("123", "连麦观众", null, "audience", null, new HashMap());
NERoomKit.getInstance().getRoomService().joinRoom(joinParams, callback);
// 普通观众切换到连麦观众
roomContext.changeMemberRole(userUuid, "audience");
// 连麦观众切换到普通观众
roomContext.changeMemberRole(userUuid, NERoomBuiltinRole.Observer);
此文档是否对你有帮助?