小程序 + 腾讯云移动直播SDK

小程序

主要是推流标签和拉流标签;没什么好说的,看微信文档就行;
live-pusher //推流
live-player // 拉流 播放

腾讯云移动直播SDK

关于腾讯 M L V B 直播

var A = ’ webim_wx.js ’

var B = ’ mlvbliveroomcore.js ’

var C = ’ mlvbliveroomview.js ’

var D = ’ webim_handler.js ’

var E = ’ mlvb-live-room自定义标签’

必须项:
  1. 调用 A 中的 login方法进行 IM登录 —》 IM通信

  2. 调用 B 中的 login 方法登录房间服务(参数为: 腾讯云的sdkAppID,userSig, 后台账号userID) —》 MLVB直播

  3. 调用 B 中的 getRoomList 方法 查看直播房间列表,获取直播房间信息

  4. 通过不同标签来确定是创建房间还是进入房间,跳转路由为 MLVB 页面中,找到自定义mlvb组件,调用组件中的start方法进入直播间

  5. 调用start方法后,进入 C 中自动调用 该js文件中的 start方法,通过前面标签来判断是主播还是观众

主播开播:
  1. 在 C 中的start方法中确定为主播后 调用 B 中的 getPushURL方法 获取 推流地址,成功后把推流地址赋值给标签,之后将 C 中的监听事件方法 传给 B 中的 同等方法名 进行调用,找到live-pusher标签,调用标签方法中的 start 开始进行 推流

  2. 开始推流后,触发标签上的 bindstatechange 事件,实时获取推流情况,推流成功后 调用 create 方法调用 B 中的 createRoom 方法 来创建房间

  3. 创建房间成功后进入 D 中的 createBigGroup方法,在由该方法调用 A 中的 createGroup 方法创建 IM群

  4. IM群创建成功后回到 B 中执行成功的回调 joinAnchor 方法加入推流,边推流边由innerMergerAnchors方法进入房间,进入房间后开启心跳即通知其他主播,由 E 中的RoomEvent监听事件 返回 创建房间成功

说人话: 获取推流地址 -》 创建房间 -》 创建群 -》 进入房间进入群

观众收看:
  1. 在 C 中的start方法中确定为观众后 执行 enter 方法,然后调用 B 中的 enterRoom 方法中的 proto_enterRoom 进房方法

  2. 在进房方法中,调用 D 中的 applyJoinBigGroup方法 在调用 A 中的 applyJoinBigGroup 进入大群

  3. 进群成功后,回到 proto_enterRoom 中 调用 getAnchors 获取房间信息,将房间信息返回给 C 中的 enter方法 由 playMixedUrl 方法赋值给标签

  4. 最后触发标签的 bindstatechange 事件,获取拉流情况, 由 E 中的RoomEvent监听事件 返回 进房通知

说人话: 进群(由进房方法触发进群操作) -》 进房 -》 获取房间信息 -》 赋值给标签进行拉流播放

连麦:
  1. 由观众端触发 requestJoinAnchor 请求连麦方法, 触发 D 方法中的 sendC2CCustomMsg 消息事件,收到消息后,向主播端发送连麦请求,由主播端控制同意还是拒绝连麦请求

  2. 主播同意后触发 C中的 respondJoinAnchor方法 在由 D 方法中的 sendC2CCustomMsg 消息事件,发送同意连麦消息,观众收到同意连麦消息后开始连麦

  3. 连麦过程: 停止观众的播放流 -》 获取推流地址 -》 开始推流 -》 推流成功 -》 加入推流(混流) -》 连麦成功

说人话: 观众请求连麦 -》 发送连麦消息 -》 主播同意 -》 主播发送同意连麦消息 -》 观众收到同意连麦消息,开始连麦 -》 连麦成功

// 主播拒接连麦也同样会发送拒接消息的 -》 观众收到拒绝消息 -》 连麦失败

// 中间的方法调用则忽略了,明白执行流程即可,从流程上寻找问题

发送文本消息:
  1. 主播或观众触发 sendTextMsg 方法,带上文本信息 + 发送人信息由 D 方法中的 sendCustomMsg 消息事件,向腾讯后台发送请求

  2. 在请求返回的成功信息中(查看RspMsgList是否为空,存在即执行收到消息回调),触发消息回调的方法中执行 D 方法中的 onBigGroupMsgNotify 处理消息

  3. 处理消息成功后 由 A 方法中的 receiveMsg 接受消息处理,然后触发消息通知,通知 E 标签收到消息事件,推送给全体群成员

说人话: 发送文本消息并请求 -》 请求成功的信息触发消息事件 -》 处理消息并推送消息

// 请求成功的消息之所以可以触发到消息事件,是一定要在创建直播房间的时候触发长轮询(长连接)事件

小程序中长这个样子:

MsgManager.resetBigGroupLongPollingInfo();
MsgManager.setBigGroupLongPollingOn(true); //开启长轮询
MsgManager.setBigGroupLongPollingKey(resp.LongPollingKey); //更新大群长轮询key (key值是创建直播房间成功后返回的)
MsgManager.setBigGroupLongPollingMsgMap(options.GroupId, 0); //收到的群消息置0
MsgManager.bigGroupLongPolling(); //开启长轮询

// 一定要开启哦 ! 要不然是不会触发消息事件的;


最后, 以上步骤都是慢慢摸索出来的,可能有些方法没有记录上去;加粗部分都是简略步骤,根据步骤来查看问题所在。



// 一个月薪2500的狗头,只能记录+分享它的狗生了…

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值