zoukankan      html  css  js  c++  java
  • 安卓微信中播放视频终于可以不再自动全屏啦

    转自:https://blog.csdn.net/qq_16494241/article/details/72780908

    最新的设置安卓视频不全屏播放(不知道是否全部安卓机型都支持)的方法
    前两天做了一个石头剪刀布的视频游戏项目,测试过程中找到了更加简便的方法,分享下,如下设置HTML代码:
    <video id="videoID" controls src="XXX" poster="XXX.jpg" preload="auto" x-webkit-airplay="true" x5-playsinline="true" webkit-playsinline="true" playsinline="true"></video>

    安卓设置属性:
     x5-playsinline="true"
    实测,不可加以下属性设置,否则还是会跳出黑底全屏播放
     x5-video-player-type='h5' x5-video-player-fullscreen='true'

    注意的细节就是,(只是安卓机)当视频播放后:
      1、它的层级比较高,当有设置定位的弹层显示后,即使设置z-index层级特别高,还是会被播放过的视频挡住的(我这边解决方法就是当显示弹层时隐藏视频,关闭弹层再显示视频),也就是说此视频不可设置被其它元素遮挡,它永远是在最上层的
      2、如果有背景音乐播放时,当视频播放后,背景音乐自动停止且不会在视频播放完后再继续播放

     IOS设置属性:
     webkit-playsinline="true" playsinline="true" 

    *****************************************************************************************

    安卓微信中播放视频时总是会自动在新窗口全屏播放视频,而且播放结束后自动推送多个视频列表展示给用户选择,但有时候我们就是需要视频能够局部区域播放

    找了一年多的答案终于有了结果了

    下面贴出解决办法:

    1、HTML中
    ① 给video标签增加属性,使浏览器调用h5原生video
     <video id="testVideo" x5-video-player-type='h5' x5-video-player-fullscreen='true'>
    ②在页面中添加canvas画布
    <canvas id="testCanvas"></canvas>

    2、CSS中,使video隐藏
    video{display:none}

    3、js代码配置
    /*以下是渲染CANVAS画布中的视频*/
    //获取video
    var TestVideo=document.getElementById("testVideo");
    //获取canvas画布
    var TestCanvas=document.getElementById("testCanvas");
    //设置画布
    var TestCanvas2D=TestCanvas.getContext('2d');
    //设置setinterval定时器
    var TestVideoTimer=null;
    //监听播放
    TestVideo.addEventListener('play',function() {
        TestVideoTimer=setInterval(function() {
            TestCanvas2D.drawImage(TestVideo,0,0,videoW,videoH);
        },20);
    },false);
    //监听暂停
    TestVideo.addEventListener('pause',function() {
        clearInterval(TestVideoTimer);
    },false);
    //监听结束
    TestVideo.addEventListener('ended',function() {
        clearInterval(TestVideoTimer);

    },false);

    测试demo的下载地址

      测试的demo中,对安卓和苹果手机进行了判断,因为大家应该都知道,苹果手机在播放视频时设置video的playsinline="true"属性后,视频就可以局部区域播放了,界面友好,而安卓则比较让人头痛,所以只需对安卓机进行以上(HTML/CSS/JS)设置即可

    下面贴图是demo的测试截屏:

  • 相关阅读:
    spring-boot BUG 集锦
    彻底卸载mysql
    mybatis -generator 逆向工程
    内网穿透工具使用
    Spring 笔记
    maven项目 @Resource报错 ava.lang.NoSuchMethodError: javax.annotation.Resource.lookup()Ljava/lang/String;
    log4j配置及异常、解决办法
    from…import * 语句与 import 区别
    python:__file__
    python安装yaml
  • 原文地址:https://www.cnblogs.com/2019gdiceboy/p/11851401.html
Copyright © 2011-2022 走看看