html5 与视频
1.视频支持格式。
有3种视频格式被浏览器广泛支持:.ogg,.mp4,.webm.
Theora+Vorbis=.ogg (Theora:视频编码器,Vorbis:音频编码器)
H.264+$$$=.mp4 (H.264:高清视频标准)
VP8+Vorbis=.webm(webm是新的开源视频标准,基于VP8编码器)
| 平台 | .ogg | .mp4 | .webm |
| Andorid | ❌ | ❌ | |
| FirFox | ❌ | ❌ | |
| Chrome | ❌ | ❌ | |
| iPhone | ❌ | ||
| IE9 | ❌ | ||
| Opera | ❌ | ❌ | |
| Safari | ❌ |
可见,没有任何一个格式能够支持所有浏览器,所以我们需要引入3中格式的视频。
<video id="ivideo" width="320" height="640"> <source src="test.webm" type='video/webm;codecs="vp8,vorbis"'> <source src="test.mp4" type='video/mp4;codecs="arc1.42E01E,mp4a.40.a"'> <source src="test.ogg" type='video/ogg;codecs="thera,vorbis"'> </video>
2.video属性
autoplay:true or false;是否自动播放
loop:true or false;是否循环播放
volume:0~1数字;播放音量
poster:加载视频时显示的图片url。
duration:视频长度(s)
currentTime:视频当前播放时间(s)
ended:根据视频是否播放结束,返回true or false,
muted:查询播放中的视频是否静音,返回true or false
paused:查询视频当前是否被暂停,返回true or false
方法:
play():启动播放
pause():暂停
3.预加载视频
为视频加载添加预加载动画
<div id="preload">0%</div>
这里要知道两个htmlvideo元素的事件:
progress:在视频对象更新加载进度时触发该事件,用于更新进度文字
canplaythrough:在视频已加载足够播放全部视频数据时触发,用于确定什么时候播放视频。
load事件firefox不支持,chrome&ie10不触发progress事件
监听加载百分比函数:
function progress(){
var loadingStatus=document.getElementById("loadingstatus");
var videoEle=document.getElementById("ivideo");
var percent=parseInt((videoEle.buffered.end(0)/videoEle.duration)/100);
loadingStatus.innerHtml=percent+'%';
}
4.js判断浏览器可用视频格式
video的另一个方法:canPlayType(),返回一个文本字符串:maybe,probably,''
function supportVideoType(video){
var returnType="";
if(video.canPlayType("video/webm")=="probably"||video.canPlayType("video/webm")=="maybe"){
returnType="webm";
}else if(video.canPlayType("video/mp4")=="probably"||video.canPlayType("video/mp4")=="maybe"){
returnType="mp4";
}else if(video.canPlayType("video/ogg")=="probably"||video.canPlayType("video/ogg")=="maybe"){
returnType="ogg";
}
return returnType;
使用标签方式引入video只能支持播放、暂停等功能,如果需要旋转、添加文字等特殊效果,则需要和canvas一起使用。
html5 与视频的更多相关文章
- canvas与html5实现视频截图功能
这段时间一直在研究canvas,突发奇想想做一个可以截屏视频的功能,然后把图片拉去做表情包,哈哈哈哈哈哈~~ 制作方法: 1.在页面中加载视频 在使用canvas制作这个截图功能时,首先必须保证页面上 ...
- HTML5笔记2——HTML5音/视频标签详解
音视频的发展史 早期:<embed>+<object>+文件 问题:不是所有浏览器都支持,而且embed不是标准. 现状:Realplay.window media.Quick ...
- 不完全解决Android微信HTML5 播放视频的问题(不显示控制条,可交互)
首先你需要知道以下内容: http://ad.weixin.qq.com/learn/2-3-3--%E9%80%9A%E7%94%A8%E5%BA%93 这是微信为广告商开放的API,我一直认为只有 ...
- Android WebView 总结 —— 使用HTML5播放视频及全屏方案
在APP开发的过程中,会碰到需要在WebView中播放视频的需求,下面讲解一下如何在WebView中使用html5播放视频. 1.让视频在各个Android版本能够正常播放 在AndroidManif ...
- HTML5 Video(视频)
HTML5 Video(视频) 很多站点都会使用到视频. HTML5 提供了展示视频的标准. 检测您的浏览器是否支持 HTML5 视频: 检测 Web站点上的视频 直到现在,仍然不存在一项旨在网页上显 ...
- 尚硅谷《全套Java、Android、HTML5前端视频》
尚硅谷<全套Java.Android.HTML5前端视频> (百万谷粉推荐:史上最牛.最适合自学的全套视频.资料及源码) [尚硅谷官网资料导航] 谷粒学院在线学习:http://www.g ...
- HTML5中音频视频标签使用
HTML5中音频视频标签使用的最好方式 Html5中提供了<audio> <vedio>元素实现音频视频的引入播放 然而更好的方式
- html5音频视频专题
html5音频视频专题 总结 1. 操作的就是video和audio两个对象,这两个对象有他们的属性和方法,通过对象的id就可以操作他们 <audio src="../video/琴箫 ...
- 【转】Android HTML5 Video视频标签自动播放与自动全屏问题解决
为了解决 HTML5Video视频标签自动播放与全屏问题,在网上找了很多相关资料,网上也很多关于此问题解决方法,但几乎都不能解决问题,特别对各大视频网站传回来的html5网页视频自动播放与全屏问题,我 ...
- HTML5: HTML5 Video(视频)
ylbtech-HTML5: HTML5 Video(视频) 1.返回顶部 1. HTML5 Video(视频) 很多站点都会使用到视频. HTML5 提供了展示视频的标准. 检测您的浏览器是否支持 ...
随机推荐
- 启动了VSAN服务的主机不在vCenter集群中
背景: 这个问题的来源是,某用户将该ESXi主机直接夺取到另一个vCenterA的管辖中,而这个vCenterA中集群A开启了VSAN功能,导致再次反向夺取到vCenterB中的时候带有了来自于集群A ...
- DDD CQRS架构和传统架构的优缺点比较
明天就是大年三十了,今天在家有空,想集中整理一下CQRS架构的特点以及相比传统架构的优缺点分析.先提前祝大家猴年新春快乐.万事如意.身体健康! 最近几年,在DDD的领域,我们经常会看到CQRS架构的概 ...
- 【调侃】IOC前世今生
前些天,参与了公司内部小组的一次技术交流,主要是针对<IOC与AOP>,本着学而时习之的态度及积极分享的精神,我就结合一个小故事来初浅地剖析一下我眼中的“IOC前世今生”,以方便初学者能更 ...
- C#向PPT文档插入图片以及导出图片
PowerPoint演示文稿是我们日常工作中常用的办公软件之一,而图片则是PowerPoint文档的重要组成部分,那么如何向幻灯片插入图片以及导出图片呢?本文我将给大家分享如何使用一个免费版Power ...
- 在Windows上编译和调试CoreCLR
生成CoreCLR - Windows篇 本文的唯一目的就是让你运行Hello World 运行环境 Window 7+ Visual studio 2015 确保C++ 工具已经被安装,默认是不安装 ...
- MySQL 系列(四)主从复制、备份恢复方案生产环境实战
第一篇:MySQL 系列(一) 生产标准线上环境安装配置案例及棘手问题解决 第二篇:MySQL 系列(二) 你不知道的数据库操作 第三篇:MySQL 系列(三)你不知道的 视图.触发器.存储过程.函数 ...
- Nexus(一)环境搭建
昨天,成功搭建了自己的 Maven 环境(详见:Maven(一)环境搭建),今天就来研究和探讨下 Nexus 的搭建! 使用背景: 安装环境:Windows 10 -64位 JDK版本:1.7 Mav ...
- Struts2日期类型转换
针对日期类java.util.Date进行类型转换,要求客户端使用"yyyy-MM-dd","yyyy/MM/dd"中的任意一种输入,并以"yyyy- ...
- ASP.NET Core 中间件详解及项目实战
前言 在上篇文章主要介绍了DotNetCore项目状况,本篇文章是我们在开发自己的项目中实际使用的,比较贴合实际应用,算是对中间件的一个深入使用了,不是简单的Hello World,如果你觉得本篇文章 ...
- Xamarin.Android快速入门
一.准备工作 1.创建一个空的解决方案,并命名为Phoneword 2.右击解决方案 新建->新建项目 并命名为Phoneword_Droid 二.界面 1.打开Resources文件夹-> ...