• 关于video标签移动端开发遇到的问题,获取视频第一帧,全屏,自动播放,自适应等问题


    最近一直在处理video标签在IOS和Android端的兼容问题,其中遇到不少坑,绝大多数问题已经解决,下面是处理问题经验的总结:

       1.获取视频的第一帧作为背景图;

          技术:canvas绘图

         

    window.onload = function(){
    var video = document.getElementById('video');
    //使用严格模式
    'use strict';
    //第一帧图片与原视频的比例
    var scal = 0.8;
    //监听页面加载事件
    video.addEventListener('dataLoad',function(){
    //创建一个画布
    var canvas = document.createElement('canvas');
    canvas.width = video.style.width*scal;
    canvas.height = video.style.height*scal;
    //绘制图片
    canvas.getContentext('2d').drawImage(video,0,0,canvas.width,canvas.height);
    //设置标签的poster属性
    viseo.setAttribute("poster",canvas.toDataURL("image/png"));

    });
    }

    2.禁止安卓手机自动全屏

      video标签在安卓系统下,默认全屏,通过添加属性可以禁止全屏,

      x5-playsinline="true",切记添加该属性后不能再有x5-video-player-type='h5' x5-video-player-fullscreen='true',否则还会默认全屏

    3.播放视频时,不能完全覆盖的问题

     此时需要给video标签添加style样式

    100%;height:100%;object-fit:fill;

    此外,video标签的父元素应该设置宽高:100%;height:100%;

    4.自动播放问题

    在pc端,只需要给video标签加上autoplay = 'autoplay'属性即可,

    在移动端需要使用js判断

    首先应在也页面中引入<script src="http://res.wx.qq.com/open/js/jweixin-1.1.0.js"></script>

    $('#video_play').play();
        
    document.addEventListener('WeixinJSBridgeReady', function () {
                    $('#video_play').play();
                
    }, false);

    在安卓中,是无法实现加载后自动播放功能的,需要引到用户产生行为,触发事件,

  • 相关阅读:
    redis和memcache的区别
    c语言行编辑程序
    C语言栈的实现
    双向链表
    静态链表的合并
    静态链表的创建
    链表
    将非递减有序排列(L L1)归并为一个新的线性表L2 线性表L2中的元素仍按值非递减
    C语言合并两个集合(L,L1) 将L1中不在L中的元素插入到L线性表中
    oracle--JOB任务
  • 原文地址:https://www.cnblogs.com/zhang-jiao/p/10606587.html
Copyright © 2020-2023  润新知