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 indexOf函数使用说明
Jul 03 Javascript
Jquery 基础学习笔记
May 29 Javascript
JavaScript Array扩展实现代码
Oct 14 Javascript
服务器端的JavaScript脚本 Node.js 使用入门
Mar 07 Javascript
浅谈jquery回调函数callback的使用
Jan 30 Javascript
Angularjs中使用指令绑定点击事件的方法
Mar 30 Javascript
vue左右侧联动滚动的实现代码
Jun 06 Javascript
微信小程序内拖动图片实现移动、放大、旋转的方法
Sep 04 Javascript
vue中轮训器的使用
Jan 27 Javascript
使用express来代理服务的方法
Jun 21 Javascript
JS co 函数库的含义和用法实例总结
Apr 08 Javascript
js抽奖转盘实现方法分析
May 16 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
PHP4实际应用经验篇(2)
2006/10/09 PHP
php 全局变量范围分析
2009/08/07 PHP
php echo 输出字符串函数详解
2010/05/13 PHP
Uncaught exception com_exception with message Failed to create COM object
2012/01/11 PHP
浅析php工厂模式
2014/11/25 PHP
php微信公众号开发(4)php实现自定义关键字回复
2016/12/15 PHP
自制PHP框架之模型与数据库
2017/05/07 PHP
弹出模态框modal的实现方法及实例
2017/09/19 PHP
JQuery Dialog的内存泄露问题解决方法
2010/06/18 Javascript
javascript中onmouse事件在div中失效问题的解决方法
2012/01/09 Javascript
JS动态创建Table,Tr,Td并赋值的具体实现
2013/07/05 Javascript
浅谈JavaScript中的作用域和闭包问题
2015/07/07 Javascript
jQuery+jsp下拉框联动获取本地数据的方法(附源码)
2015/12/03 Javascript
浅谈JS中的!=、== 、!==、===的用法和区别
2016/09/24 Javascript
基于Nodejs利用socket.io实现多人聊天室
2017/02/22 NodeJs
Node.js中的require.resolve方法使用简介
2017/04/23 Javascript
详解vue2.0的Element UI的表格table列时间戳格式化
2017/06/13 Javascript
JavaScript实现简单的文本逐字打印效果示例
2018/04/12 Javascript
微信小程序公用参数与公用方法用法示例
2019/01/09 Javascript
AutoJs实现刷宝短视频的思路详解
2020/05/22 Javascript
JavaScript前端开发时数值运算的小技巧
2020/07/28 Javascript
[01:04:05]Mineski vs TNC 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
Python 实现一个颜色色值转换的小工具
2016/12/06 Python
python 获取网页编码方式实现代码
2017/03/11 Python
Django+Ajax+jQuery实现网页动态更新的实例
2018/05/28 Python
Flask模拟实现CSRF攻击的方法
2018/07/24 Python
Python脚本操作Excel实现批量替换功能
2019/11/20 Python
Expedia加拿大官方网站:加拿大最大的在线旅游提供商
2017/12/31 全球购物
类的返射机制中的包及核心类
2016/09/12 面试题
项目考察欢迎辞
2014/01/17 职场文书
大学军训自我鉴定大全
2014/09/18 职场文书
应届生简历自我评价
2015/03/11 职场文书
硕士学位申请报告
2015/05/15 职场文书
Python可视化学习之matplotlib内置单颜色
2022/02/24 Python
windows系统安装配置nginx环境
2022/06/28 Servers
win10频率超出范围怎么办?win10老显示超出工作频率范围的解决方法
2022/07/07 数码科技