收藏
回答

小程序中 live-player 没有触发bindstatechange事件 导致无法自动播放视频?

小程序中 live-player 设置了autoplay ,但是进入页面后拿到远端流 没有触发bindstatechange ,无法自动播放。需要手动将微信置入手机后台,再次进入微信,才可触发statechange事件,(项目中mpvue 写法包装了一下,改造了腾讯云音视频的 webrtc 组件 demo),哪位同学能帮忙定位一下问题,谢谢


1、live-player

<div class="player-box"
  <live-player :id=fixPlayId || members[0].userID" autoplay mode="RTC" object-fit="fillCrop" min-cache="0.1" max-cache="0.3"
 :src=members[0].accelerateURL" :debug=debug"  @statechange=onPlay
</live-player>
</div>

2、js监听事件

//播放器live-player回调
onPlay(e) {
  e = e.mp || e
  console.log('onPlay code: ', e.detailcode) //这个console 首次进入视频页 没有打印出来
  this.members.forEach((val) => {
    if ((this.template == 'bigsmall' && e.currentTargetid === this.fixPlayId) || e.currentTargetid == val.userID) {
      switch (e.detailcode) {
        case 2007: {
          console.log'视频播放loading: ', e)
          val.loading = true
          break
        
        case 2004: {
          console.log'视频播放开始: ', e)
          val.loading = false
          setTimeout(() => {
            this.startPlay = true
          , 300
          break
        
        case 2301: {
          console.error'网络连接断开,且重新连接亦不能恢复,播放器已停止播放', val)
          this.delPusher(val)
          break
        
        default: {
          // console.log('拉流情况:', e.detail.code,e.detail.msg);
        
      }
    }
  })


回答关注问题邀请回答
收藏

3 个回答

  • 社区技术运营专员-娇华
    社区技术运营专员-娇华
    01-08

    你好,如果不使用mpvue来处理是否会有这个问题?

    01-08
    有用
    回复
  • ==
    ==
    01-14

    你好 请问这个问题解决了吗 ?

    01-14
    有用
    回复
  • fun way
    fun way
    01-09

    您好 webrtc demo是原生小程序写法 是可以的,但是mpvue会编译成原生的,想问一下是不是个人逻辑哪里没有触发 player.play

    01-09
    有用
    回复
登录 后发表内容
问题标签