video-08-videojs黑屏问题(详解总结)

简介: video-08-videojs黑屏问题(详解总结)

博主在开发的时候遇到这种情况,video黑屏问题,问题有两种情况,一种是视频黑屏且不可以播放,另一种是视频黑屏且自己播放,事件可以监听到



一、问题类型1 视频黑屏且不可以播放

1.1 原因

       在执行videojs初始化的时候,videojs会通过video标签上的id来获取video的dom元素,

但是这个时候,dom可能还没有加载上去!!!初始化失败,所以黑屏

1.2 解决方案思路

       在执行videojs初始化以前,先通过document.getElementById("videoPlayer1")看能不能获取到dom元素,如果获取的是null,就是没有还没有dom,等延迟500ms继续获取,如果获取到dom,那么就进行videojs的初始化

1.3 代码实现

getVideo(src) {
     const aaa = document.getElementById("videoPlayer1")
      //判断是否获取到dom,获取到了,那么跳过这,直接videojs初始化
      if (!aaa) {
        setTimeout(() => {
          this.getVideo(src)//延迟500ms继续执行这个初始化函数,继续判断是否能获取到
        }, 500)
        return
      }
    //代码执行到这里,即是能正常视频播放,且不会黑屏!!!!
      this.player = Videojs('videoPlayer1', {}, function () {
      })
      this.player.src([{
        src: src
      }])
    }

二、问题类型2 视频黑屏且自己播放,事件可以监听到

2.1 复现

       (挺奇葩的)我们打开这个页面的视频播放,然后返回了一个页面,再打开就会出现,video黑屏但是视频还在自己播放

2.2 原因

       我们离开这个页面的时候,没有将这个videojs初始化的对象清空和卸载

2.3 解决方案

       监听离开本页面的事件,如果是vue的话,在组件销毁前将videojs初始化的对象卸载掉

2.4 代码实现

vue中组件销毁前卸载

beforeDestroy() {
    if (this.player) {
      this.player.dispose(); // Removing Players,该方法会重置videojs的内部状态并移除dom
    }
  },

 

目录
相关文章
|
小程序
小程序 video 组件播放本地视频(黑屏无法播放,报错:MEDIA_ERR_SRC_NOT_SUPPORTED)
小程序 video 组件播放本地视频(黑屏无法播放,报错:MEDIA_ERR_SRC_NOT_SUPPORTED)
566 0
|
5天前
|
内存技术
用VC 6.0写flash播放器——5、全屏播放
用VC 6.0写flash播放器——5、全屏播放
|
7天前
|
Python
音乐播放 pygame mp3play 和获取音乐信息的 库from mutagen.mp3 import MP3
音乐播放 pygame mp3play 和获取音乐信息的 库from mutagen.mp3 import MP3
|
3月前
|
Web App开发 前端开发
audio的自动播放报错解决
使用audio标签时,当前页面没有进行交互时,比如用户刷新了页面后,play()调用就会报错,要如何解决?
|
5月前
video-04-videojs配置及使用
video-04-videojs配置及使用
202 1
|
5月前
|
JavaScript 前端开发
video-03-video事件汇总
video-03-video事件汇总
80 1
|
5月前
|
移动开发 JavaScript Android开发
H5 video 自动播放(autoplay)不生效解决方案
H5 video 自动播放(autoplay)不生效解决方案
475 0
|
编解码 API Android开发
ijkplayer、VLC Player、SmartPlayer、ExoPlayer播放器比较
ijkPlayer是BiliBili公司维护的一个开源工程,基于ffmpeg开发的一个播放器软件,支持Android和iOS平台,整个ijkplayer就是以ffplay为基础,如果只是使用它进行播放,集成也较为简单,使用也和MediaPlayer差不多,但是要定制化需求,就有一定的门槛高度。支持软硬编解码,支持倍速播放,可以定制化集成需要的功能,集成占用体积也很小,更详细的解释参看下面官方介绍:
1120 0
|
内存技术
pyqt5播放视频,flash
pyqt5播放视频,flash