关于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样式

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

此外,video标签的父元素应该设置宽高:width: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);

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

原文地址:https://www.cnblogs.com/zhang-jiao/p/10606587.html

时间: 2024-08-22 20:31:39

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

video 全屏,播放,隐藏控件。

requestFullscreen全屏具体实现 1.进入全屏 function full(ele) { if (ele.requestFullscreen) { ele.requestFullscreen(); } else if (ele.mozRequestFullScreen) { ele.mozRequestFullScreen(); } else if (ele.webkitRequestFullscreen) { ele.webkitRequestFullscreen(); } el

Android 使WebView支持HTML5 Video(全屏)播放的方法

http://blog.csdn.net/zrzlj/article/details/8050633 1)需要在AndroidManifest.xml文件中声明需要使用HardwareAccelerate, 可以细化到Activity级别,如果不需要的View可以声明不要用加速,但是需要在代码中做,具体如下: a. 如果要声明整个应用都要加速: < application ... android:hardwareAccelerated ="true"> b.  如果要在Ac

苹果手机端触屏自动播放音乐

//触发音乐播放和暂停,解决ios不能自动播放音乐问题 var once=1; (function(){ $("body").bind('touchstart',function(){ if(once==1){ bmusic(); } }) })() function bmusic(){ if (window.HTMLAudioElement) { try { var oAudio = document.getElementById('myaudio'); var btn = docu

[18]Java实战项目教程 Java电商项目 服务端实战 基于最新SSM框架 视频源码全[15G]

视频试看链接:https://pan.baidu.com/s/1qY3bQMg 淘宝链接:https://item.taobao.com/item.htm?spm=0.7095261.0.0.534444d0f5tDSg&id=562016685477 总目录: 子文件目录1: 子文件目录2: 视频:

Chromium为视频标签&lt;video&gt;全屏播放的过程分析

在Chromium中,<video>标签有全屏和非全屏两种播放模式.在非全屏模式下,<video>标签播放的视频嵌入在网页中显示,也就是视频画面作为网页的一部分显示.在全屏模式下,我们是看不到网页其它内容的,因此<video>标签播放的视频可以在一个独立的全屏窗口中显示.这两种截然不同的播放模式,导致Chromium使用不同的方式渲染视频画面.本文接下来就详细分析<video>标签全屏播放的过程. 从前面Chromium为视频标签<video>渲

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

今天做一个app时发现一个问题,应用html5中的video标签加载视频,在Android手机上默认播放大小,但是换成iPhone手机上出问题了,默认弹出全屏播放,查找了好多论坛,都没有谈论这个的.然后几经波折终于找到其解决的方法了,在video标签下的source中加入这个-webkit-playsinline=true完美解决全屏问题. 例如: <video width="100%" loop="loop" autoplay controls="

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

今天做一个app时发现一个问题,应用html5中的video标签加载视频,在Android手机上默认播放大小,但是换成iPhone手机上出问题了,默认弹出全屏播放,查找了好多论坛,都没有谈论这个的.然后几经波折终于找到其解决的方法了,在video标签下的source中加入这个-webkit-playsinline=true完美解决全屏问题. 例如: <video width="100%" loop="loop" autoplay> <source

iOS开发进阶 - 用AVFoundation自定义视频录制功能

如果移动端访问不佳,请访问我的个人博客 系统自带的录制视频的功能显然无法满足美工和项目经理的要求,自定义视频录制就非常重要了,那么下面来带大家制作属于自己的视频录制界面. 简介 自定义视频录制需要用到的框架主要是AVFoundation和CoreMedia,包括视频输出,输入和文件的读写,下面给大家罗列一下将要用到的类: AVCaptureSession AVCaptureVideoPreviewLayer AVCaptureDeviceInput AVCaptureConnection AVC

Html5视频播放video标签使用详解【转】

1,下面是一个播放视频的最简单样例 (controls属性告诉浏览器要有基本播放控件) <video src="hangge.mp4" controls></video> 2,通过width和height设置视频窗口大小 <video src="hangge.mp4" controls width="400" height="300"></video> 3,预加载媒体文件 设置p