使用video.js踩坑。单页切换后视频无法播放

切换页面以后正常显示效果

但是我切换路由返回上一层或者点击跳转下个页面的返回的时候就不显示了??

解决思路

在生命周期beforeDestroy函数中销毁创建的video实例。

html代码

<div class="videoListBox"><ul class="videoList"><li v-for="(item,i) in videoList":key="i"style="margin-bottom: 30px"><div id="video-title">{{item.video_title}}</div><video:id="'myVideo'+item.id"class="video-js vjs-default-skin vjs-big-play-centered" style="width:100%;"><!--vjs-big-play-centered 类名调节播放按钮居中显示--><source:src="item.video_url"type="video/mp4"></video></li></ul></div>

js代码如下:

<script>export default {data () {return {videoList: [],page: 1,playlist:[]}},mounted(){this.videos();},methods: {videos () {this.$api.Post('videos', { page: this.page}).then(res => {if (res.status == 1) {this.videoList = res.result.videos;this.initVideo()}})},initVideo () {this.$nextTick(()=>{this.videoList.map((item,i)=>{let w = document.getElementById('video-title').offsetWidth;let noAutoPlay = false //默认视频列表的第一个自动播放if(item.id == this.videoList.length){noAutoPlay = 'muted'}let myPlayer = this.$video('myVideo'+item.id, {//确定播放器是否具有用户可以与之交互的控件。没有控件,启动视频播放的唯一方法是使用autoplay属性或通过Player API。controls: true,//自动播放属性,muted:静音播放autoplay: noAutoPlay,//建议浏览器是否应在<video>加载元素后立即开始下载视频数据。preload: "auto",//设置视频播放器的显示宽度(以像素为单位)width: w || '380px',//设置视频播放器的显示高度(以像素为单位)height: "200px",});this.playlist.push(myPlayer)})})},},beforeDestroy(){ //(第三步)在销毁之前拿到video实例for(let i=0;i<this.playlist.length;i++){this.playlist[i].dispose(); //(第四步)dispose()是官方的销毁函数}},
}
</script>

Vue中video.js踩坑日记 单页切换后视频无法播放相关推荐

  1. ReactNative 在丁香医生项目中引入的踩坑日记

    ReactNative 在丁香医生项目中引入的踩坑日记 this没绑定到函数导致空指针 参考 React-Native 踩坑第二弹-undefined is not a function(evalua ...

  2. vue中使用bootstrap4踩坑之旅

    bootstrapvue官网 bootstrap4中文官网 以下文章记录本人的踩坑过程,最后已亲测有效,但不保证是最简便的方法,最好的建议是去bootstrapvue官网看文档直接尝试. 一.引入jq ...

  3. 浅谈cesium在vue2中的使用---踩坑日记(一)

    vue2+cesium,我的踩坑记录 许久不见,我又诈尸更博了.最近刚刚忙完项目,继续研究cesium,为以后做准备.也遇到了好多好多的坑,查了很多资料,好在最终是解决了. 在此分享下我的经验,顺便记 ...

  4. vue.js踩坑之ref引用细节点

    vue.js组件之H5页面,DOM标签或者组件中,通过ref="自定义name名称"引用的细节点 要点简介:[ 见下文案例 ] 使用is=" "解决H5出现的标 ...

  5. vue.js踩坑之单向数据流

    vue.js父子组件之间的数据通信,细节总结 隐性规则:单行数据流 学前疑问: 1.父组件如何向子组件通信数据? 2.父组件可以直接修改子组件的数据!但是反过来绝对不可以!那怎么解决这个问题呢? 3. ...

  6. Antd Pro V4 protable详解(ps:踩坑日记)

    Antd Pro V4 protable详解(ps:踩坑日记) 写在前面: 在这篇文章中,你会了解到: protable 中的cloumns属性详解 protable数据加载和处理(两种方法,直接使用 ...

  7. vue 地图使用navigator_weex踩坑之旅第五弹 ~ 使用navigator内置模块实现导航

    目前,我个人认为在weex中实现页面跳转的方式有两种,一种是通过weex提供的navigator模块,一种是通过vue-router之类的第三方插件.这两种方式在开发过程中都需要.那么什么时候采用na ...

  8. 全志哪吒D1-H Tina Linux Ubuntu 22.04入门踩坑日记

    哪吒D1-H Tina Linux入门踩坑日记 系统环境 源码编译 mklibs-readelf的C++标准问题 m4的SIGSTKSZ问题 libfakeroot的_STAT_VER问题 read_ ...

  9. Win11 + Ubuntu18.04 双系统踩坑日记

    Win11 + Ubuntu18.04 双系统踩坑日记 前言 准备工作 硬件配置 镜像下载 Win11镜像下载 Ubuntu镜像下载 启动盘准备 Win11启动盘 Ubuntu启动盘 Win11安装 ...

最新文章

  1. R语言ggplot2包和lattice包可视化改变x轴和y轴的显示位置实战
  2. Android 内存管理 amp;Memory Leak amp; OOM 分析
  3. 关于react diff 算法(译文)
  4. 大小端判断和网络字节序
  5. [codevs 1237] 餐巾计划问题
  6. 哪个牌子的平板电脑好_重庆智能会议平板哪个牌子好?软硬件好才是真的好!...
  7. UIWindow的windowLevel详解
  8. esc指令检查打印状态_Z.115 胶片自助打印设备
  9. 写了人生中第一个完整模块的用例
  10. [译] 关于CSS中的float和position (父容器div内的子元素div为float时,父元素无法撑开(或高度自适应)的解决方式)
  11. 阿里云云盾 · 云防火墙技术解读:零配置业务自动分组,安全管理有序、可见...
  12. 用C#写XML类型的配置文件:
  13. WPF-创建超链接文本
  14. mysql数据库教程子查询_MySQL数据库实操教程(17)——子查询
  15. 分享微信预约系统开发制作步骤_教你实现微信公众预约系统的方法
  16. Java 案例三 随机点名器
  17. 使用Javascript 实现 分享到 新浪微博 QQ 空间等
  18. 使用springboot+vue+element-ui模仿蓝墨云班课
  19. 三大措施助力新华三NGFW争当市场排头兵
  20. kali nethunter 开启远程桌面

热门文章

  1. git fix conflict git解决冲突(一)
  2. excel中如何截取指定字符之间的字符
  3. com.alibaba.druid.pool.DruidDataSource : {dataSource-1} closed
  4. 123.火箭发射特效
  5. 可以ping 通IP地址但ping不通网址的解决方法
  6. Win10预览版系统下载:中文简体64位ISO下载
  7. chatGPT对经济的影响
  8. 本地化openbravo
  9. 一位十年软件工程师告诉你什么是编程思想
  10. Mac Studio 与 Mac mini:应该买哪个?