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 相关文章推荐
window.showModalDialog使用手册
Jan 11 Javascript
js 效率组装字符串 StringBuffer
Dec 23 Javascript
JS解析json数据并将json字符串转化为数组的实现方法
Dec 25 Javascript
简单的jquery左侧导航栏和页面选中效果
Aug 21 Javascript
输入框过滤非数字的js代码
Sep 18 Javascript
浅析node.js中close事件
Nov 26 Javascript
jQuery中:disabled选择器用法实例
Jan 04 Javascript
解决node-webkit 不支持html5播放mp4视频的方法
Mar 11 Javascript
javascript高级选择器querySelector和querySelectorAll全面解析
Apr 07 Javascript
ajax 提交数据到后台jsp页面及页面跳转问题
Jan 19 Javascript
vue模块拖拽实现示例代码
Mar 09 Javascript
vue权限问题的完美解决方案
May 08 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
图文介绍PHP添加Redis模块及连接
2015/07/28 PHP
PHP常用设计模式之委托设计模式
2016/02/13 PHP
Zend Framework教程之Zend_Db_Table用法详解
2016/03/21 PHP
PHP实现的折半查找算法示例
2017/12/19 PHP
基于jquery的从一个页面跳转到另一个页面的指定位置的实现代码(带平滑移动的效果)
2011/05/24 Javascript
JavaScript的漂亮的代码片段
2013/06/05 Javascript
JavaScript异步编程:异步数据收集的具体方法
2013/08/19 Javascript
js防止表单重复提交的两种方法
2013/09/30 Javascript
jQuery的DOM操作之删除节点示例
2014/01/03 Javascript
jQuery将所有被选中的checkbox某个属性值连接成字符串的方法
2015/01/24 Javascript
Js控制滑轮左右滑动实例
2015/02/13 Javascript
基于jQuery实现二级下拉菜单效果
2016/02/01 Javascript
php基于redis处理session的方法
2016/03/14 Javascript
JavaScript中的Number数字类型学习笔记
2016/05/26 Javascript
node.js 中国天气预报 简单实现
2016/06/06 Javascript
AngularJS基础 ng-init 指令简单示例
2016/08/02 Javascript
详解微信小程序开发之下拉刷新 上拉加载
2016/11/24 Javascript
微信小程序 图片加载(本地,网路)实例详解
2017/03/10 Javascript
ES6新特性之解构、参数、模块和记号用法示例
2017/04/01 Javascript
vue 实现input表单元素的disabled示例
2019/10/28 Javascript
[43:57]LGD vs Mineski 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
python备份文件以及mysql数据库的脚本代码
2013/06/10 Python
Python实现的Google IP 可用性检测脚本
2015/04/23 Python
python简单线程和协程学习心得(分享)
2017/06/14 Python
Python实现PS滤镜特效Marble Filter玻璃条纹扭曲效果示例
2018/01/29 Python
python实现远程通过网络邮件控制计算机重启或关机
2018/02/22 Python
Python过滤txt文件内重复内容的方法
2018/10/21 Python
Python with语句用法原理详解
2020/07/03 Python
Python基于staticmethod装饰器标示静态方法
2020/10/17 Python
css3中新增的样式使用示例附效果图
2014/08/19 HTML / CSS
俄罗斯和世界各地的酒店预订:Hotels.com俄罗斯
2016/08/19 全球购物
SHEIN美国:购买时髦的女性服装
2020/12/02 全球购物
学期研究性学习个人的自我评价
2014/01/09 职场文书
数学教育专业求职信
2014/07/22 职场文书
小学生自我评价100字(15篇)
2014/09/18 职场文书
通过shell脚本对mysql的增删改查及my.cnf的配置
2021/07/07 MySQL