腾讯云音视频互动课堂trtc,实现逻辑,服务端混流逻辑

时间:2020-12-15作者:klpeng分类:IT综合浏览:869评论:0

roomId(classId)房间ID 

创建房间:

--  RoomID
RoomID(房间号/房间ID)用于在一个 TRTC 应用中唯一标识一个房间。RoomID 是由开发者自行维护和分配的一个 uint32 范围内的数字,取值区间:1 - 4294967295。


--------------------------------------------------------------老师端逻辑-------------------------------------------------------------- 

1createRoom -- 其实是创建私有群组 -- this.tim.createGroup 然后将老师teacherUserID设置成当前老师的user_ID,然后将this.tim 实例化,并会往后面的组件传递


2--进入课堂界面,点击开始授课 --  rtcClient.enterRoom ,这里调用trtc_edu_sdk.enterRoom 逻辑
3分为老师和学生
如果是老师:
那么调用_enterRoom ,这里是设置成主播,可以上行视频和音频,并且 设置场景 :视频通话场景,支持720P、1080P高清画质


--------------------------------------------------------------学生逻辑-------------------------------------------------------------- 

1学生进入课程,也进入rtcClient.enterRoom ,这里调用trtc_edu_sdk.enterRoom 逻辑

如果是学生:

调用 edu_sdk._joinGroup先加入im群组,然后调用_enter_romm,也设置成设置成主播,可以上行视频和音频,并且 设置场景 :视频通话场景,支持720P、1080P高清画质

eg:TRTC 采用 UDP 协议进行传输音视频数据,而标准直播 CDN 则采用的 RTMP\HLS\FLV 等协议进行数据传输,
所以需要将 TRTC 中的音视频数据旁路到直播 CDN 中,才能在让观众通过直播 CDN 进行观看

----------也就是说学生进入房间,学生老师都是走的trtc低延迟模式,使用udp传输

--------------------------------------------------------------互动逻辑-------------------------------------------------------------- 

互动逻辑:

1、开放举手
老师端通过IM聊天室全员聊天功能发送特殊语义实现 -- edu_sdk sendGroupCustomMessage 调用im_sdk sendMessage 发送cmd: 1 
客户端订阅im消息 -- this.tim.on(TIM.EVENT.MESSAGE_RECEIVED, this._onIMMessageReceived.bind(this)) 解析参数 如果是 1,触发事件 QUESTION_TIME_STARTED,调用学生端的事件处理
函数,打开举手功能。
2学生端发送cmd_2, 触发studentRaiseHand函数

3老师端接受到cmd_2,可以指定学生上台发言,然后指定学生发送cmd_3

4该学生端收到cmd_3 --  打开麦克疯 this.openMicrophone();触发事件this._emitter.emit(EVENT.BE_INVITED_TO_PLATFORM, item)

end --开始连麦


教师端显示学生视频的修改------------------------

1.学生端cmd === 3 会触发事件 BE_INVITED_TO_PLATFORM ,然后学生端,事件回调里面调用 const domEle = document.getElementById('teacherLocalVideo');
    rtcClient.openCamera(domEle, TRTCVideoResolution.TRTCVideoResolution_270_270);开启摄像头

2.老师端点击上台,然后监听上台事件REMOTE_VIDEO_ADD,如果有人上台,调用显示远端画面showVideo

3后台im调用create_group创建群组并制定群主

4在老师点击授课进入房间时,请求后端发起混流请求  -- StartMCUMixTranscodeRequest()


-----------------------------------------------------老师断线,重进问题---------------------------------------------------------------
0.学生端监听到老师掉线,停止所有麦克风和视频推流
方案1.老师掉线需要重新进入课堂,点击开课,然后需要开始视频和分享屏幕推流,在这一步,可以加入学生画面
方案2.重新开始举手和上台


-------------------------------------------------------混流逻辑---------------------------------------------------------------
1.开启旁路直播,设置参数。
2.客户端进入enterRoom的时候,设置参数steamId  ---- steam设置规则 ‘skb_’+ 房间ID,并向客户端发起混流请求
3.服务端请求腾讯云混流接口并设置混流模式和steamId
4.客户端播放,拼接url  http://liveplay.shikaobang.cn/live/skb_房间ID.flv

打赏
文章版权声明:除非注明,否则均为彭超的博客原创文章,转载或复制请以超链接形式并注明出处。
相关推荐

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

猜你喜欢