vue-video-player 解决微信自动全屏播放问题(横竖屏导致样式错乱问题)


Posted in Javascript onFebruary 25, 2020

对于vue-video-player,从github上找到一段代码,直接放页面!可以了,视频展示出来了!开始下一个功能。。。。

这可能是大部分前端开发者一贯的思维模式,拿来一个插件,看着demo就做出来了,功能展示正常就OK了,但是一旦出了bug,就会面向百度编程或者面向Google编程!

其实,我也是这样的,哈哈哈哈.....

废话不多说,最近在做一个视频播放的功能,找到vue-video-player插件后,咔咔咔完事,拿着我的爱疯,完美演绎!但是其他人的国产某牌手机,展示的完全不一样,打开后自动全屏,而且还有个横竖屏控制。“这是我写的页面?????”,心中一万只神兽在奔腾。横竖屏切换后,视频下的内容在全屏模式下展示了出来一部分。

百度了半天,看源码,还是不知道咋回事。

后来终于找到了解决办法:

之前:playsinline="playsinline"这里是true写死的,现在改为计算属性playsinline()

computed: {
  player () {
   return this.$refs.videoPlayer.player
  },
  playsinline () {
   let ua = navigator.userAgent.toLocaleLowerCase()
   // x5内核
   if (ua.match(/tencenttraveler/) != null || ua.match(/qqbrowse/) != null) {
    return false
   } else {
    // ios端
    return true
   }
  }
 }

添加playsinline()这个计算属性,原因是在安卓和iOS端微信使用的内核不同,所需要的attribute也不同,尝试后,采用x5内核返回false,反之为true

配合jq工具,继续添加两个端所需的属性 

@canplay="onPlayerCanplay($event)"
onPlayerCanplay (player) {
   var ua = navigator.userAgent.toLocaleLowerCase()
   // x5内核
   if (ua.match(/tencenttraveler/) != null || ua.match(/qqbrowse/) != null) {
    $('body').find('video').attr('x-webkit-airplay', true).attr('x5-playsinline', true).attr('webkit-playsinline', true).attr('playsinline', true)
   } else {
    // ios端
    $('body').find('video').attr('webkit-playsinline', 'true').attr('playsinline', 'true')
   }
  },

至此,完美解决安卓端微信播放时,横竖屏的播放样式错乱和播放时视频内容未自适应。

为兼容ios横屏将视频旋转90度

methods: {

// 视频宽高设置为手机宽高
    videoFullScreen() {
      let width = document.documentElement.clientWidth;
      let height = document.documentElement.clientHeight;
      document.getElementById('video_content').style.height = width + 'px';
      document.getElementById('video_content').style.width = height + 'px';
    },
  }
/*视频旋转*/
.video_box_rotate{

  transform rotate(90deg)
}

视频监听播放结束、进入全屏、退出全屏事件

mounted() {this.videoEnd()},
methods: {
  videoEnd(){


let video = document.getElementById('video_content');



video.addEventListener('ended', () => {




alert('video end')



});


}; // 视频播放结束
}
// 全屏事件 x5videoenterfullscreen
// 退出全屏 x5videoexitfullscreen

监听手机横竖屏

window.addEventListener('orientationchange', function() {
          // alert(window.orientation); // 这里可以根据orientation做相应的处理
          if (window.orientation === -90) {
            self.iphoneScreenShow = true;
          } else {
            self.iphoneScreenShow = false;
          }
        }, false);

到此这篇关于vue-video-player 解决微信自动全屏播放问题(横竖屏导致样式错乱问题)的文章就介绍到这了,更多相关vue-video-player 自动全屏内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
JS实现倒计时和文字滚动的效果实例
Oct 29 Javascript
javascript面向对象之共享成员属性与方法及prototype关键字用法
Jan 13 Javascript
Javascript 拖拽的一些高级的应用(逐行分析代码,让你轻松了拖拽的原理)
Jan 23 Javascript
JS+CSS实现大气清新的滑动菜单效果代码
Oct 22 Javascript
jquery使用Cookie和JSON记录用户最近浏览历史
Apr 19 Javascript
微信小程序 自定义对话框实例详解
Jan 20 Javascript
Vue-Router进阶之滚动行为详解
Sep 13 Javascript
Vue.js组件间的循环引用方法示例
Dec 27 Javascript
vue引入js数字小键盘的实现代码
May 14 Javascript
vue简单练习 桌面时钟的实现代码实例
Sep 19 Javascript
js实现简易点击切换显示或隐藏
Nov 29 Javascript
在Angular项目使用socket.io实现通信的方法
Jan 05 Javascript
通过js实现压缩图片上传功能
Feb 25 #Javascript
Vue实现简单计算器案例
Feb 25 #Javascript
使用Vue实现简单计算器
Feb 25 #Javascript
详解vue beforeEach 死循环问题解决方法
Feb 25 #Javascript
Vue实现简易计算器
Feb 25 #Javascript
js+canvas实现简单扫雷小游戏
Jan 22 #Javascript
Vue常用传值方式、父传子、子传父及非父子实例分析
Feb 24 #Javascript
You might like
最小化数据传输――在客户端存储数据
2006/10/09 PHP
用PHP函数解决SQL injection
2006/12/09 PHP
重新认识php array_merge函数
2014/08/31 PHP
分享3个php获取日历的函数
2015/09/25 PHP
Laravel 在views中加载公共页面的实现代码
2019/10/22 PHP
几行代码轻松搞定jquery实现flash8类似的连接效果
2007/05/03 Javascript
js渐变显示渐变消失示例代码
2013/08/01 Javascript
使用jQuery实现的掷色子游戏动画效果
2014/03/14 Javascript
基于JavaScript实现网页倒计时自动跳转代码
2015/12/28 Javascript
Javascript 字符串模板的简单实现
2016/02/13 Javascript
在JavaScript中模拟类(class)及类的继承关系
2016/05/20 Javascript
js设置文字颜色的方法示例
2016/12/30 Javascript
JS及JQuery对Html内容编码,Html转义
2017/02/17 Javascript
vue.js+Echarts开发图表放大缩小功能实例
2017/06/09 Javascript
EasyUI的DataGrid绑定Json数据源的示例代码
2017/12/16 Javascript
详解webpack-dev-server 设置反向代理解决跨域问题
2018/04/18 Javascript
ES6 更易于继承的类语法的使用
2019/02/11 Javascript
Vue formData实现图片上传
2019/08/20 Javascript
微信小程序image图片加载完成监听
2019/08/31 Javascript
vue 使用 v-model 双向绑定父子组件的值遇见的问题及解决方案
2021/03/01 Vue.js
[48:48]VGJ.T vs Liquid 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
python re正则表达式模块(Regular Expression)
2014/07/16 Python
Python实现读取Properties配置文件的方法
2018/03/29 Python
python实现图书借阅系统
2019/02/20 Python
探秘TensorFlow 和 NumPy 的 Broadcasting 机制
2020/03/13 Python
python3访问字典里的值实例方法
2020/11/18 Python
英国家居用品和家居装饰品购物网站:Cox & Cox
2019/08/25 全球购物
高中毕业生自我鉴定范文
2013/09/26 职场文书
求职信需要的五点内容
2014/02/01 职场文书
国培教师自我鉴定
2014/02/12 职场文书
植树造林的宣传标语
2014/06/23 职场文书
财务检查整改报告
2014/11/06 职场文书
给上级领导的感谢信
2015/01/22 职场文书
客房服务员岗位职责
2015/02/09 职场文书
汽车4S店销售经理岗位职责
2015/04/02 职场文书
Python实现文字pdf转换图片pdf效果
2022/04/03 Python