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 相关文章推荐
JavaScript 面向对象之命名空间
May 04 Javascript
js控制表单奇偶行样式的简单方法
Jul 31 Javascript
document.forms[].submit()使用介绍
Feb 19 Javascript
window.open()详解及浏览器兼容性问题示例探讨
May 29 Javascript
AngularJS基础 ng-click 指令示例代码
Aug 01 Javascript
JavaScript设计模式之单体模式全面解析
Sep 09 Javascript
js与jquery分别实现tab标签页功能的方法
Nov 18 Javascript
JavaScript实现经典排序算法之冒泡排序
Dec 28 Javascript
Angularjs的启动过程分析
Jul 18 Javascript
关于vue-cli 3配置打包优化要点(推荐)
Apr 22 Javascript
Vue 设置axios请求格式为form-data的操作步骤
Oct 29 Javascript
javascript实现拖拽碰撞检测
Mar 12 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字符串 ==比较运算符的副作用
2009/10/21 PHP
php中计算未知长度的字符串哪个字符出现的次数最多的代码
2012/08/14 PHP
php类中private属性继承问题分析
2012/11/01 PHP
PHP设计模式之命令模式示例详解
2020/12/20 PHP
基于jQuery的日期选择控件
2009/10/27 Javascript
Javascript 二维数组
2009/11/26 Javascript
javascript生成json数据简单示例分享
2014/02/14 Javascript
JavaScript事件委托实例分析
2015/05/26 Javascript
如何用jQuery实现ASP.NET GridView折叠伸展效果
2015/09/26 Javascript
自己动手写的javascript前端等待控件
2015/10/30 Javascript
关于javascript中dataset的问题小结
2015/11/16 Javascript
jQuery打字效果实现方法(附demo源码下载)
2015/12/18 Javascript
Angularjs实现控制器之间通信方式实例总结
2018/03/27 Javascript
vue.js 实现点击展开收起动画效果
2018/07/07 Javascript
layui表格数据复选框回显设置方法
2019/09/13 Javascript
element-ui 远程搜索组件el-select在项目中组件化的实现代码
2019/12/04 Javascript
python网络编程学习笔记(10):webpy框架
2014/06/09 Python
深入理解Python中的元类(metaclass)
2015/02/14 Python
Python中规范定义命名空间的一些建议
2016/06/04 Python
python 中的divmod数字处理函数浅析
2017/10/17 Python
Python 25行代码实现的RSA算法详解
2018/04/10 Python
Tensorflow实现AlexNet卷积神经网络及运算时间评测
2018/05/24 Python
Python读取csv文件分隔符设置方法
2019/01/14 Python
解决python字典对值(值为列表)赋值出现重复的问题
2019/01/20 Python
详解Python 定时框架 Apscheduler原理及安装过程
2019/06/14 Python
python如何制作英文字典
2019/06/25 Python
一款纯css3实现的圆形旋转分享按钮旋转角度可自己调整
2014/09/02 HTML / CSS
css3实现冲击波效果的示例代码
2018/01/11 HTML / CSS
出门问问全球官方商城:Tichome音箱和TicWatch智能手表
2017/12/02 全球购物
Haglöfs瑞典官方网站:haglofs火柴棍,欧洲顶级户外品牌
2018/10/18 全球购物
投标人法定代表人授权委托书格式
2014/09/28 职场文书
2014年营销工作总结
2014/11/22 职场文书
2016年班主任新年寄语
2015/08/18 职场文书
本地通过nginx配置反向代理的全过程记录
2021/03/31 Servers
Python读取文件夹下的所有文件实例代码
2021/04/02 Python
Python正则表达式中flags参数的实例详解
2022/04/01 Python