需求:

1、视频为长方形,页面初始化打开为横屏全屏播放视频。

2、微信不支持自动播放,故自动播放需求删除。

方法:

1、vue-video-player插件

因需求较简单,仅要求播放本地一个视频,故未选择使用插件。

2、video

  1. <div id="video_box" style="z-index: 999;" :class="{video_box_rotate: isIos}">
  2. <video
  3. @click="videoPlay"
  4. class="index_video"
  5. poster="../assets/images/poster.jpg"
  6. id="video_content"
  1.             style="object-fit:fill" /*加这个style会让 Android / web 的视频在微信里的视频全屏,如果是在手机上预览,会让视频的封面同视频一样大小
  1. webkit-playsinline='true'
  2. playsinline="true"
  3. x5-playsinline="true"
  4. x-webkit-airplay="true"
  5. x5-video-player-type="h5"
  6. x5-video-player-fullscreen="true" /*全屏播放*/
  7. x5-video-ignore-metadata="true"
  8. x5-video-orientation="landscape" /*播放器的方向,landscape横屏,portraint竖屏,默认值为竖屏*/
               preload="preload"> <source src="../../static/video.mp4" type='video/mp4; codecs="avc1.4D401E, mp4a.40.2"' > </video> </div>

具体属性解释可参考 https://blog.csdn.net/qq_16494241/article/details/62046891

同层H5播放器官网 https://x5.tencent.com/tbs/guide/video.html

注意:

  1. x5-video-orientation="landscape" /*播放器支付的方向,landscape横屏,portraint竖屏,默认值为竖屏*/
  1. landscape属性ios不支持
    为兼容ios横屏将视频旋转90
  1. mounted() {
  2. if (是否为ios) {
  3. this.videoFullScreen();
  4. }
  5. }
  1. methods: {
        // 视频宽高设置为手机宽高
  2. videoFullScreen() {
  3. let width = document.documentElement.clientWidth;
  4. let height = document.documentElement.clientHeight;
  5. document.getElementById('video_content').style.height = width + 'px';
  6. document.getElementById('video_content').style.width = height + 'px';
  7. },
  8. }
  1. /*视频旋转*/
    .video_box_rotate{
      
  2. transform rotate(90deg)
  3. }

视频监听播放结束、进入全屏、退出全屏事件

  1. mounted() {this.videoEnd()},
  2. methods: {
  3. videoEnd(){
      let video = document.getElementById('video_content');
      video.addEventListener('ended', () => {
        alert('video end')
      });
  1.   }; // 视频播放结束
  2. }
    // 全屏事件 x5videoenterfullscreen
    // 退出全屏 x5videoexitfullscreen
  1.  

监听手机横竖屏

  1. window.addEventListener('orientationchange', function() {
  2. // alert(window.orientation); // 这里可以根据orientation做相应的处理
  3. if (window.orientation === -) {
  4. self.iphoneScreenShow = true;
  5. } else {
  6. self.iphoneScreenShow = false;
  7. }
  8. }, false);
  1. 视频初始化黑屏
    可以在视频上加个div浮层(可以一个假的视频第一帧),然后用timeupdate方法监听,视屏播放及有画面的时候再移除浮层。https://segmentfault.com/a/1190000009395289
    视频进入全屏,退出全屏监听
    https://segmentfault.com/a/1190000013232870
    监听视频播放完成
    https://blog.csdn.net/mondy592/article/details/81219167
  2.  
  3. 参考资料 https://blog.csdn.net/xcy1193068639/article/details/80242111#commentsedit
  4.  
  5. 安卓去掉控制按钮 参考http://www.xyhtml5.com/3252.html
  6.  
  7. 欢迎大家指点,谢谢

vue video全屏播放的更多相关文章

  1. 解决video标签在微信中强制全屏、微信全屏播放(Android和IOS)

    在video标签中加上代码: x5-playsinline="true" webkit-playsinline="true" playsinline=" ...

  2. HTML5新标签video在iOS上默认全屏播放

    今天做一个app时发现一个问题,应用html5中的video标签加载视频,在Android手机上默认播放大小,但是换成iPhone手机上出问题了,默认弹出全屏播放,查找了好多论坛,都没有谈论这个的.然 ...

  3. video自动全屏播放

    video自动全屏播放 关于Screen.lockOrientation() https://developer.mozilla.org/en-US/docs/Web/API/Screen/lockO ...

  4. html-----vedio标签(HTML5新标签VIDEO在IOS上默认全屏播放)

    今天做一个app时发现一个问题,应用html5中的video标签加载视频,在Android手机上默认播放大小,但是换成iPhone手机上出问题了,默认弹出全屏播放,查找了好多论坛,都没有谈论这个的.然 ...

  5. audio与video控件/标签的隐藏,iso/Android下自动全屏播放,短暂黑屏问题

    (一)audio音频标签 <audio src="xxx.mp3"></audio> (二)video视频标签 <video src="xx ...

  6. MUI ios下用video标签默认全屏播放

    前几天用Hbuilder+MUI做了个应用,里边用到<video>标签,在Android下正常,但是在苹果手机老是默认全屏播放. 解决办法: 首先在video标签加上playsinline ...

  7. 解决微信video全屏的问题,不在本页面播放

    在微信浏览器中使用video标签,点击播放会跳出本页面,自动进行全屏播放,原因是自动跳转到手机微信内置的浏览器中去播放去了!!! 在video中加上连个属性就好了,反正最近的一个项目,我是这样做的就好 ...

  8. video视频标签一些设置,包括封面、播放结束后的封面、视频占满屏幕的方式、视频播放暂停、展示控制栏、触发全屏播放事件

    video视频标签一些设置,包括封面.播放结束后的封面.视频占满屏幕的方式.视频链接.视频播放暂停.展示控制栏.触发全屏播放事件 <video id="video" auto ...

  9. IOS(苹果手机)使用video播放HLS流,实现在内部播放及全屏播放(即非全屏和全屏播放)。

    需求: 实现PC及移动端播放HLS流,并且可以自动播放,在页面内部播放及全屏播放功能. 初步:PC及安卓机使用hls.js实现hls流自动播放及全屏非全屏播放 首先使用了hls.js插件,可以实现在P ...

随机推荐

  1. JDBC简单总结

    几种常用数据库的JDBC URL 对于 Oracle 数据库连接,采用如下形式: jdbc:oracle:thin:@localhost:1521:sid 对于 SQLServer 数据库连接,采用如 ...

  2. vue项目放在IE上页面空白的问题

    Babel是一个广泛使用的转码器,可以将ES6代码转为ES5代码 1.npm install babel-polyfill --save 2.main.js中引入 import 'babel-poly ...

  3. [Java复习] 微服务

    1. 怎么样定义一个微服务,或划分服务比较合理?业务导向的共性? 对应服务拆分,先设计高内聚低耦合的领域模型(DD),再实现相应的分布式系统是一种比较合理的方式. 微服务是手段,不是目的.目的是为了让 ...

  4. python 列表使用

    下面实现的类似于java中的数组: names[-2]表示实现倒数的第2个参数 names[-3,-1]表示实现-3到-1的值不包含-1 增删改查 下面代码实现列表的增删改查功能: 复制copy 深c ...

  5. js append()和appendChild()和insertBefore()的区别

    <body> <input type="button" value="删除" id="btn"> <scrip ...

  6. UIView的 形变属性transform

    // ViewController.m // 形变属性transform // // Created by LiuWei on 2018/4/23. // Copyright © 2018年 xxx. ...

  7. VMware安装MAC OS

    测试环境 安装环境:win10 .VMware Workstation Pro14 镜像:OS X 10.11.5(由于太大,就没有上传网盘,网上也有很多资源) 安装准备 安装前先把关于VMware的 ...

  8. python练习题之计算字符串中所有字符得和

    第二题:计算字符串中所有数字的和1.字符串中只有小写字母和数字2.数字可能连续,也可能不连续3.连续数字要当做一个数处s='1234adg3g11's1 = "" for i in ...

  9. 回复git@vger.kernel.org的注意事项

    比如回复这封邮件 https://public-inbox.org/git/db2dcf54-8b1c-39b1-579c-425ef158c6a1@kdbg.org/ Reply instructi ...

  10. UI:UI 目录

    ylbtech-UI:UI 目录 1.返回顶部   2.返回顶部   3.返回顶部   4.返回顶部   5.返回顶部     6.返回顶部   作者:ylbtech出处:http://ylbtech ...