美文网首页
微信小程序接入直播功能遇到的问题与解决!

微信小程序接入直播功能遇到的问题与解决!

作者: zx一个胖子 | 来源:发表于2020-03-26 15:46 被阅读0次

    一. 目前小程序的直播功能只开放给了一部分商家(电商类的),有资格的话会显示在小程序后台 功能 --> 直播 。

    二. 直播功能开通后就可以在小程序后台创建直播间了,当然,这个时候用户是进不了直播间的,需要小程序代码修改一下:
    具体看 文档 : https://developers.weixin.qq.com/miniprogram/dev/framework/liveplayer/live-player-plugin.html

    三. 直播组件 1.0.3 主要有一些坑:
    1. 订阅组件的坑: 订阅组件会自己查询直播间的状态,当直播间为未开播的时候才会显示,其他状态都不显示;
    解决:

                      <view  wx:if='{{liveStutas==102}}'>
                            <subscribe room-id='{{roomId}}'></subscribe>
                            <view bindtap="goLive">观看直播</view>
                      </view>
    

    subscribe 组件在显示的时候会覆盖 <view bindtap="goLive">观看直播</view>, subscribe 不显示的时候就会展示<view bindtap="goLive">观看直播</view>

    1. 获取直播间状态的坑:getLiveStatus 获取某个直播间的状态,第一次获取状态以后,一分多钟才会返回一次状态,一分钟内是调取这个api是没反应的。
      解决:
      等官方更新,也正是因为这个坑,才导致的 订阅组件获取的直播状态与getLiveStatus 获取的状态 不同步,进而导致订阅组件不显示的问题出现。

    2. 收集用户openid 的坑: 用户主要分四种进入直播间的方式,扫码进入,订阅卡片进入,分享卡片进入,点击按钮直接进入。主要是前三种比较坑,因为官方没有具体示例。
      解决:
      修改app.js的onshow

        onShow: function (options){
            if (options.scene == 1007 || options.scene == 1008 || options.scene == 1044) { //分享卡片进入
                livePlayer.getShareParams()
                .then(res => {
                    if (res.room_id){
                        this.sendOpenid(res.openid, res.room_id)
                    }
                    // console.log('get room id', res.room_id) // 房间号
                    // console.log('get openid', res.openid) // 用户openid
                    // console.log('get share openid', res.share_openid) // 分享者openid,分享卡片进入场景才有
                    // console.log('get custom params', res.custom_params) // 开发者在跳转进入直播间页面时,页面路径上携带的自定义参数,这里传回给开发者
                }).catch(err => {
                    console.log('get share params', err)
                })
            }else{  // 订阅/扫码进入
                if (options.query.room_id){ 
                    livePlayer.getOpenid({ room_id: options.query.room_id }) // 该接口传入参数为房间号
                    .then(res => {
                        this.sendOpenid(res.openid, options.query.room_id)
                    }).catch(err => {
                        console.log('get openid', err)
                    })
                }
            }   
        },
    

    相关文章

      网友评论

          本文标题:微信小程序接入直播功能遇到的问题与解决!

          本文链接:https://www.haomeiwen.com/subject/usjcuhtx.html