移动端vue使用video标签使其视频退出全屏继续播放

<video id="videoElement" style="object-fit:fill"
   :src="playUrl" :poster="coverUrl" x-webkit-airplay="true"
   x5-video-player-fullscreen="true" x5-video-orientation="portraint"
   x5-playsinline="true" playsinline="true" webkit-playsinline="true" 
   controlsList="nodownload" preload="metadata" controls class="prism-player">
 </video>
尝试效果:
let video = document.getElementById('videoElement')
video.addEventListener('webkitbeginfullscreen', function() {
this._exitfullscreen = false;
});
video.addEventListener("webkitendfullscreen", function(){
this.exitTimeStamp = new Date().getTime();
console.log('触发了 退出全屏',this.exitTimeStamp);// ios退出全屏之前 如果之前是播放状态,先触发paused状态(可以监听到)  如果是暂停状态,不会触发pause了。 这个状态一直维持4毫秒左右 要等到5毫秒之后再执行play
if(!this._exitfullscreen){ // 通过退出时间 跟 触发 退出时间 差
  if(this.exitTimeStamp - this.pauseTimestamp <= 100){ 
    if(this.timer) clearTimeout(this.timer);
      this.timer = setTimeout(()=>{
        video.play();
        this._exitfullscreen = true;
      }, 500);
      // }
  }
}
});
video.addEventListener('pause', function(e) { 
this.pauseTimestamp = new Date().getTime();
console.log('触发了 暂停', this.pauseTimestamp);
});
存在的问题:

在视频全屏没有点击暂停的情况下,退出全屏会出现视频暂停的现象。
如何使其视频在无点击暂停退出全屏的情况下继续播放?

阅读 7.9k
2 个回答

在上面尝试的基础上添加:

document.addEventListener("WeixinJSBridgeReady", function (){ // 自动播放
    video.play();
    video.pause();
}, false)
video.addEventListener('x5videoexitfullscreen', function () { // Android中退出全屏事件
    this.x5exitTimeStamp = new Date().getTime();
    console.log('触发了 退出全屏',this.x5exitTimeStamp);
    if(!this._exitfullscreen){ // 通过退出时间 跟 触发 退出时间 差
      if(this.x5exitTimeStamp - this.pauseTimestamp <= 100){ 
        if(this.timer) clearTimeout(this.timer);
        this.timer = setTimeout(()=>{
          video.play();
          this._exitfullscreen = true;
        }, 500);
      }
    }
  })

触发暂停的时候在执行play方法可以么

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏