HTML5中使用video播放视频的详解

1,下面是一个播放视频的最简单样例

(controls属性告诉浏览器要有基本播放控件)

<video src="hangge.mp4" controls></video>

2,通过width和height设置视频窗口大小

<video src="hangge.mp4" controls width="400" height="300"></video>

3,预加载媒体文件

设置preload不同的属性值,可以告诉浏览器应该怎样加载一个媒体文件:
(1)值为auto:让浏览器自动下载整个文件
(2)值为none:让浏览器不必预先下载文件
(3)值为metadata:让浏览器先获取视频文件开头的数据块,从而足以确定一些基本信息(比如视频的总时长,第一帧图像等)

<!-- 用户点击播放才开始下载 -->
<video src="hangge.mp4" controls preload="none"></video>

4,自动播放
(1)使用autoplay属性可以让浏览器加载完视频文件后立即播放。

<video src="hangge.mp4" controls autoplay></video>

(2)如果启用自动播放,可以将播放器设置为muted状态。这样自动播放时会静音,防止用户厌烦。用户需要的话可以点击播放器扬声器图标重新打开声音。

<video src="hangge.mp4" controls autoplay muted></video>

5,循环播放

使用loop属性让视频播放结束时,再从头开始播放。

<video src="hangge.mp4" controls loop></video>

6,设置替换视频的图片(封面图片)
通过poster属性可以设置,浏览器在下面三种情况下会使用这个图片:
(1)视频第一帧未加载完毕
(2)把preload属性设置为none
(3)没有找到指定的视频文件

<video src="hangge.mp4" controls poster="hangge.png"></video>

7,浏览器兼容,如何让每一个浏览器都能顺利播放视频
现在大部分浏览器都能支持H.264格式的视频,但Opera浏览器却一直不支持。我们需要通过后备措施保证每个人都能看到视频,通常有下面几种方案:

(1)使用多种视频格式

<video>和<audio>元素有个内置的格式后备系统。我们不使用src属性,而是在其内部嵌套一组<source>元素,浏览器会选择播放第一个它所支持的文件。

我们可以添加WebM格式的视频提供对Opera的支持。

<video controls>
    <source src="hangge.mp4" type="video/mp4">
    <source src="hangge.webm" type="video/webm">
</video>

(2)添加Flash后备措施(推荐)
上面那个方法不推荐,应为Opera浏览器只占不到1%的份额。特意为它把视频都转码一边太费事。使用Flash作为备用播放方案还是很方便的,同时Flash还能兼容IE8这种连<video>元素都不支持的老浏览器。

这里使用Flowplayer Flash作为备用播放器(本地下载 :flowplayer-3.2.18.zip)

<video controls>
    <source src="hangge.mp4" type="video/mp4">
    <source src="hangge.webm" type="video/webm">
    
    <object id="flowplayer" width="400" height="300"
        data="flowplayer-3.2.18.swf"
        type="application/x-shockwave-flash">
        <param name="movie" value="flowplayer-3.2.18.swf">
        <param name="flashvars" value='config={"clip":"hangge.mp4"}'>
    </object>
</video>

(3)也有人优先使用Flash,而HTML5作为后备措施。
这么做是因为Flash普及率比较高,而HTML5作为后备可以扩展iPad和iPhone用户

<object id="flowplayer" width="400" height="300"
    data="flowplayer-3.2.18.swf"
    type="application/x-shockwave-flash">
    <param name="movie" value="flowplayer-3.2.18.swf">
    <param name="flashvars" value='config={"clip":"hangge.mp4"}'>
 
    <video controls>
        <source src="hangge.mp4" type="video/mp4">
        <source src="hangge.webm" type="video/webm">
    </video>
</object>

原文出自:www.hangge.com  转载请保留原文链接:http://www.hangge.com/blog/cache/detail_896.html

时间: 2024-11-01 20:51:23

HTML5中使用video播放视频的详解的相关文章

PPT播放视频技巧详解

经常使用PowerPoint制作课件的朋友们都遇到过播放视频困难的问题.比如像这样:精心从VCD光盘或录像带上截取了一段视频文件(通常为.mpeg格式),用超级解霸或Windows自带播放器等都能正常播放,可在插入幻灯片时,却弹出错误提示对话框:"无法从选定的文件中插入影片.文件格式可能不标准,或QuiekTime未正确安装". 一般遇到这样的情况是这样解决的:采用超级链接的方法直接调用超级解霸等工具进行播放或者转换为AVI格式再插入幻灯片.不过这两种方法各有其缺点,调用超级解霸的缺

html5视频video与声频audio详解

html5视频video与声频audio详解      在html5中出现了一些新特性: canvas 元素 视频 video 和 声频audio 元素 : 对本地离线存储(localstorage,sessionstorage)的支持 : 新增特殊内容元素:article.footer.header.nav.section : 新增表单控件: calendar.date.time.email.url.search .     今天看看视频和声频:在html5中规定了视频的标准方法:video

mediaplayer-android中mediaPlayer+surfaceView播放视频如何实现控制video的大小

问题描述 android中mediaPlayer+surfaceView播放视频如何实现控制video的大小 现在我使用了mediaPlayer与surfaceView播放视频,但是需要实现视频显示全屏和非全屏的切换,我想的一个办法是通过动态改变surfaceView的大小,然后 在surfaceChanged()函数中调用mSurfaceHolder.setSizeFromLayout();使得surface的大小也随之改变了,但是现在问题是:mediaPlayer.getVideoHeigh

js检测浏览器是否支持html5中的video标签的方法

 这篇文章主要介绍了使用js检测浏览器是否支持html5中的video标签的方法,需要的朋友可以参考下 代码如下: //检测是否支持HTML5 function checkVideo() {     if (!!document.createElement('video').canPlayType) {         var vidTest = document.createElement("video");         oggTest = vidTest.canPlayType

使用js检测浏览器是否支持html5中的video标签的方法_javascript技巧

复制代码 代码如下: //检测是否支持HTML5function checkVideo() {    if (!!document.createElement('video').canPlayType) {        var vidTest = document.createElement("video");        oggTest = vidTest.canPlayType('video/ogg; codecs="theora, vorbis"');  

JavaScript中String.match()方法的使用详解

  这篇文章主要介绍了JavaScript中String.match()方法的使用详解,是JS入门学习中的基础知识,需要的朋友可以参考下 此方法用于当匹配针对正则表达式的字符串来检索匹配. 语法 ? 1 string.match( param ) 下面是参数的详细信息: param : 正则表达式对象 返回值: 如果正则表达式不包括g标志,返回的结果相同于regexp.exec(string) 如果正则表达式包含g标志,则该方法返回一个包含所有匹配的数组 例子: ? 1 2 3 4 5 6 7

JavaScript中的条件判断语句使用详解

这篇文章主要介绍了JavaScript中的条件判断语句使用详解,是JS入门学习中的基础知识,需要的朋友可以参考下 在写一个程序,可能有一种情况,当你需要采用一个路径出给定两个路径.所以,需要使用条件语句,让程序来做出正确的决策和执行正确的行动. JavaScript支持其用于执行根据不同的条件不同的操作条件语句.在这里,我们将解释if..else语句. JavaScript支持if..else语句的形式如下: if 语句 if...else 语句 if...else if... 语句. if 语

Lua中break语句的使用方法详解

  这篇文章主要介绍了Lua中break语句的使用方法详解,是Lua入门学习中的基础知识,需要的朋友可以参考下 当循环中遇到break语句,循环立即终止,程序控制继续下一个循环语句后面. 如果您正在使用嵌套循环(即一个循环里面另一个循环),break 语句将停止最内层循环的执行并开始执行的下一行代码的程序后段. 语法 Lua break语句语法如下: 代码如下: break 例子: 代码如下: --[ local variable definition --] a = 10--[ while l

jquery中的ajax同步和异步详解_AJAX相关

之前一直在写JQUERY代码的时候遇到AJAX加载数据都需要考虑代码运行顺序问题.最近的项目用了到AJAX同步.这个同步的意思是当JS代码加载到当前AJAX的时候会把页面里所有的代码停止加载,页面出去假死状态,当这个AJAX执行完毕后才会继续运行其他代码页面假死状态解除. 而异步则这个AJAX代码运行中的时候其他代码一样可以运行. jquery的async:false,这个属性 默认是true:异步,false:同步. $.ajax({ type: "post", url: "