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 相关文章推荐
点击广告后才能获得下载地址
Oct 26 Javascript
jquery 指南/入门基础
Nov 30 Javascript
jquery动态改变onclick属性导致失效的问题解决方法
Dec 04 Javascript
JS中JSON对象和String之间的互转及处理技巧
Apr 06 Javascript
jquery+css3实现熊猫tv导航代码分享
Feb 12 jQuery
详解vue-cli 2.0配置文件(小结)
Jan 14 Javascript
详解基于vue-cli3快速发布一个fullpage组件
Mar 08 Javascript
详解Vue-cli3 项目在安卓低版本系统和IE上白屏问题解决
Apr 14 Javascript
vue实现的请求服务器端API接口示例
May 25 Javascript
vue项目中使用bpmn为节点添加颜色的方法
Apr 30 Javascript
vue点击按钮实现简单页面的切换
Sep 08 Javascript
vue自定义树状结构图的实现方法
Oct 18 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
vBulletin Forum 2.3.xx SQL Injection
2006/10/09 PHP
Windows下的PHP5.0详解
2006/11/18 PHP
php max_execution_time执行时间问题
2011/07/17 PHP
PHP代码实现表单数据验证类
2015/07/28 PHP
PHP实现的同步推荐操作API接口案例分析
2016/11/30 PHP
为Extjs加加速(javascript加速)
2010/08/19 Javascript
js读取本地excel文档数据的代码
2010/11/11 Javascript
上传图片js判断图片尺寸和格式兼容IE
2014/09/01 Javascript
js事件绑定快捷键以ctrl+k为例
2014/09/30 Javascript
javascript复制粘贴与clipboardData的使用
2014/10/16 Javascript
jquery插件uploadify实现带进度条的文件批量上传
2015/12/13 Javascript
ionic 自定义弹框效果
2017/06/27 Javascript
vue2.0 如何在hash模式下实现微信分享
2019/01/22 Javascript
jquery实现上传图片功能
2020/06/29 jQuery
Element InputNumber 计数器的实现示例
2020/08/03 Javascript
[05:39]2014DOTA2国际邀请赛 DK晋级胜者组专访战队国士无双
2014/07/14 DOTA
python paramiko实现ssh远程访问的方法
2013/12/03 Python
Python中zfill()方法的使用教程
2015/05/20 Python
python模块smtplib学习
2018/05/22 Python
浅谈Scrapy网络爬虫框架的工作原理和数据采集
2019/02/07 Python
Python-接口开发入门解析
2019/08/01 Python
tensorflow 实现数据类型转换
2020/02/17 Python
意大利团购网站:Groupon意大利
2016/10/11 全球购物
荷兰鞋子在线:Nelson Schoenen
2017/12/25 全球购物
The North Face北面德国官网:美国著名户外品牌
2018/12/12 全球购物
BAILEY 44官网:美国制造的女性服装
2019/07/01 全球购物
小学英语教学反思案例
2014/02/04 职场文书
信用社主任竞聘演讲稿
2014/05/23 职场文书
学校总务处领导班子民主生活会对照检查材料思想汇报
2014/09/27 职场文书
教师四风自我剖析材料
2014/09/30 职场文书
小学生五一劳动节演讲稿
2015/03/18 职场文书
运动员加油词
2015/07/18 职场文书
2019各种保证书范文
2019/06/24 职场文书
python引入其他文件夹下的py文件具体方法
2021/05/23 Python
Window server中安装Redis的超详细教程
2021/11/17 Redis
十大最强格斗系宝可梦,超梦X仅排第十,第二最重格斗礼仪
2022/03/18 日漫