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 相关文章推荐
基于jQuery的自动完成插件
Feb 03 Javascript
JavaScript原型继承之基础机制分析
Aug 26 Javascript
jQuery将多条数据插入模态框的示例代码
Sep 25 Javascript
jQuery自定义滚动条完整实例
Jan 08 Javascript
超链接怎么正确调用javascript函数
May 23 Javascript
js实现炫酷的左右轮播图
Jan 18 Javascript
React学习笔记之事件处理(二)
Jul 02 Javascript
Swiper 4.x 使用方法(移动端网站的内容触摸滑动)
May 17 Javascript
vue移动端html5页面根据屏幕适配的四种解决方法
Oct 19 Javascript
javascript实现时间日期的格式化的方法汇总
Aug 06 Javascript
Vue Object.defineProperty及ProxyVue实现双向数据绑定
Sep 02 Javascript
原生js实现购物车功能
Sep 23 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
附件名前加网站名
2008/03/23 PHP
微信公众平台天气预报功能开发
2014/07/06 PHP
PHP Warning: Module 'modulename' already loaded in问题解决办法
2015/03/16 PHP
PHP抓取及分析网页的方法详解
2016/04/26 PHP
JavaScript 学习笔记(十二) dom
2010/01/21 Javascript
IE及IE6浏览器中判断JS文件加载成功失败的方法
2015/02/18 Javascript
JSON与XML优缺点对比分析
2015/07/17 Javascript
JS实现的通用表单验证插件完整实例
2015/08/20 Javascript
学习JavaScript设计模式(继承)
2015/11/26 Javascript
以WordPress为例讲解jQuery美化页面Title的方法
2016/05/23 Javascript
AngularJS中的JSONP实例解析
2016/12/01 Javascript
JavaScript严格模式详解
2017/01/16 Javascript
js禁止浏览器的回退事件
2017/04/20 Javascript
你有必要知道的10个JavaScript难点
2017/07/25 Javascript
angular 实现的输入框数字千分位及保留几位小数点功能示例
2018/06/19 Javascript
vue搜索和vue模糊搜索代码实例
2019/05/07 Javascript
JavaScript实现猜数字游戏
2020/05/20 Javascript
vue结合el-upload实现腾讯云视频上传功能
2020/07/01 Javascript
Vue Render函数创建DOM节点代码实例
2020/07/08 Javascript
python paramiko实现ssh远程访问的方法
2013/12/03 Python
Python 实现随机数详解及实例代码
2017/04/15 Python
Python将多个list合并为1个list的方法
2018/06/27 Python
详解程序意外中断自动重启shell脚本(以Python为例)
2019/07/26 Python
使用Python实现图像标记点的坐标输出功能
2019/08/14 Python
python字符串反转的四种方法详解
2019/12/02 Python
python代码xml转txt实例
2020/03/10 Python
Sneaker Studio匈牙利:购买运动鞋
2018/03/26 全球购物
机械专业个人求职自荐信格式
2013/09/21 职场文书
网络公司美工设计工作个人的自我评价
2013/11/03 职场文书
医药专业应届毕业生求职信范文
2014/01/01 职场文书
主管会计岗位责任制
2014/02/10 职场文书
小学先进集体事迹材料
2014/05/31 职场文书
个人批评与自我批评总结
2014/10/17 职场文书
办公室主任岗位职责
2015/01/31 职场文书
科技活动总结范文
2015/05/11 职场文书
干货:如何写好工作计划!
2019/05/17 职场文书