HTML5里引入的新标记 和 实现了HTML对视频播放和音频播放的原生支持,有了这种原生的HTML5视频播放器/音频播放器,我们不再需要flash技术,而直接能将视频/音频嵌入到了网页中。
在网页里嵌入HTML5音频播放器和视频播放器的方法非常简单:
< video src = " http://www.webhek.com/~j/theora_testsuite/320x240.ogg" controls autoplay loop > Your browser does not support the < code> video code> element.
video>
上面这个例子显示了如何播放一个视频文件,并露出视频播放控制按钮。
下面这个例子是在HTML网页里嵌入音频 audio 的方法:
< audio controls autoplay loop src = " /test/audio.ogg" >
< p> Your browser does not support the < code> audio code> element. p>
audio>
这里的 src 属性里可以填入一个音频/视频的URL,也可以是一个本地的文件。
< audio src = " audio.ogg" controls autoplay loop >
< p> Your browser does not support the < code> audio code> element p>
audio>
下面是 和 两个标记上控制属性的含义:
controls : 显示标准的 HTML5 视频/音频播放器控制条、控制按钮。 autoplay : 让文件自动播放。 loop : 让文件循环播放。
< audio src = " audio.mp3" preload = " auto" controls > audio>
这里的 preload 属性是用来缓存大体积文件的。它有三个可选值:
"none" 不缓存 "auto" 缓存 "metadata" 只缓存文件元信息
为了能够兼容各种浏览器对不同媒体类型的支持,我们可以用多个 元素来提供多个不同的媒体类型。例如:
< video controls > < source src = " foo.ogg" type = " video/ogg" > < source src = " foo.mp4" type = " video/mp4" > Your browser does not support the < code> video code> element.
video>
支持Ogg格式视频流的浏览器可以播放 Ogg 文件。如果不支持,可以播放 MPEG-4 文件。查看各种浏览器对各种媒体类型的支持情况,请查看这里。
我们还可以指定播放使用的解码器(codecs); 这样就可以更精确的让浏览器如何播放提供的视频:
< video controls > < source src = " foo.ogg" type = " video/ogg; codecs= dirac, speex" > Your browser does not support the < code> video code> element.
video>
上面,我们指定了这个视频需要使用 Dirac 和 Speex 解码器。如果浏览器支持 Ogg 格式,但没有指定的解码器,那么,视频将不会被加载。
如果没有提供 type 属性,则浏览器会向服务器询问媒体类型,看看是否支持;如果不支持,浏览器将会去检查下一个 source 属性。
一旦视频文件正确的嵌入到了HTML网页里,我们就可以使用JavaScript里控制它的部分,获取它的播放信息。比如,用JavaScript启动视频播放:
var v = document. getElementsByTagName ( "video" ) [ 0 ] ;
v. play ( ) ;
用JavaScript可控制HTML5视频播放器实现播放、暂停、快进,快退、音量等。
< audio id = " demo" src = " audio.mp3" > audio>
< div> < button onclick = " document.getElementById(' demo' ).play()" > 播放 button> < button onclick = " document.getElementById(' demo' ).pause()" > 暂停 button> < button onclick = " document.getElementById(' demo' ).volume+= 0.1" > 降低音量 button> < button onclick = " document.getElementById(' demo' ).volume-= 0.1" > 提高音量 button>
div>
虽然我们可以使用pause()方法里让视频文件停止播放,但浏览器并未停止下载媒体文件,除非它达到了一定的缓存量。
下面是让浏览器如何停止下载视频文件的方法:
var mediaElement = document. getElementById ( "myMediaElementID" ) ;
mediaElement. pause ( ) ;
mediaElement. src= '' ;
mediaElement. removeAttribute ( "src" ) ;
通过删除 src 属性(或者设置为空值),这样就能停止文件的网络下载。
我们可以指定视频从某时某分某秒开始播放,这是通过设置 currentTime属性来实现。
我们可以通过 seekable 属性来获得视频有效的播放时间范围。它会返回一个 TimeRanges 对象,能够告诉你有效的开始时间和结束时间。
var mediaElement = document. getElementById ( 'mediaElementID' ) ;
mediaElement. seekable. start ( 0 ) ;
mediaElement. seekable. end ( 0 ) ;
mediaElement. currentTime = 122 ;
mediaElement. played. end ( 0 ) ;
设定播放范围
当在网页里嵌入视频/音频文件时, 或 元素允许我们提供一些额外的信息来指定播放哪一时间段。实现的方法是在媒体文件后面跟随(“#”)格式的信息。
它的具体语法是这样的:
#t=[开始时间][,结束时间]
时间的表示方法可以使用秒数,也可以提供一个 ”时:分:秒“ 格式的时间(例如 2:05:01 )。/p>
举例:
http://www.webhek.com/video.ogg#t=10,20 指定视频从10秒开始播放,到20秒处结束。 http://www.webhek.com/video.ogg#t=,10.5 指定视频从头开始播放到 10.5 秒处。 http://www.webhek.com/video.ogg#t=,02:00:00 指定视频播放2小时。 http://www.webhek.com/video.ogg#t=60 指定视频从第60秒开始播放,播放到结束。
设置视频封面(poster参数)
当视频不是自动播放时,在有些浏览器里,视频在未播放前的缺省界面是空白,这样很没有意义,我们可以给视频设定一个封面,用视频里的某个比较具有代表意义的画面截图作为视频的封面,设定视频封面的参数是 poster:
< video poster = ' cover.jpg' src = " http://www.webhek.com/~j/theora_testsuite/320x240.ogg" controls autoplay loop > Your browser does not support the < code> video code> element.
video>
当视频加载遇到错误时的补救方法
有时候视频资源会失效,或加载失败,或者浏览器不能解码当前视频格式,当遇到这种情况,我们应该给与补救措施,替换当前视频资源地址,或用其它措施补救,比如将video对象替换成图片。我们可以使用JavaScript对视频加载中的“error”事件进行监听,比如对于下面的视频资源:
Click image to play a video demo of dynamic app search
我们使用下面的js代码进行补救:
var v = document.querySelector('video'),sources = v.querySelectorAll('source'),lastsource = sources[sources.length-1];
lastsource.addEventListener('error', function(ev) {var d = document.createElement('div');d.innerHTML = v.innerHTML;v.parentNode.replaceChild(d, v);
}, false);
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】 进行投诉反馈!