Home > Web Front-end > H5 Tutorial > body text

HTML5视频播放器<video>和音频播放器<audio>用法

PHP中文网
Release: 2017-03-30 13:30:45
Original
3907 people have browsed it

  HTML5视频播放器

HTML5里引入的新标记 

 

HTML5视频播放器<video>和音频播放器<audio>用法


如何嵌入视频和音频

在网页里嵌入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>
Copy after login

上面这个例子显示了如何播放一个视频文件,并露出视频播放控制按钮。

下面这个例子是在HTML网页里嵌入音频 audio 的方法:

<audio controls autoplay loop src="/test/audio.ogg">
<p>Your browser does not support the <code>audio</code> element.</p>
</audio>
Copy after login

这里的 src 属性里可以填入一个音频/视频的URL,也可以是一个本地的文件。

<audio src="audio.ogg" controls autoplay loop>
<p>Your browser does not support the <code>audio</code> element </p>
</audio>
Copy after login

下面是

  • controls : 显示标准的 HTML5 视频/音频播放器控制条、控制按钮。

  • autoplay : 让文件自动播放。

  • loop : 让文件循环播放。

<audio src="audio.mp3" preload="auto" controls></audio>
Copy after login

这里的 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>
Copy after login

支持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>
Copy after login

上面,我们指定了这个视频需要使用 Dirac 和 Speex 解码器。如果浏览器支持 Ogg 格式,但没有指定的解码器,那么,视频将不会被加载。

如果没有提供 type 属性,则浏览器会向服务器询问媒体类型,看看是否支持;如果不支持,浏览器将会去检查下一个 source 属性。

用JavaScript控制视频/音频播放

一旦视频文件正确的嵌入到了HTML网页里,我们就可以使用JavaScript里控制它的部分,获取它的播放信息。比如,用JavaScript启动视频播放:

var v = document.getElementsByTagName("video")[0];v.play();
Copy after login

用JavaScript可控制HTML5视频播放器实现播放、暂停、快进,快退、音量等。

<audio id="demo" src="audio.mp3"></audio><p>
  <button onclick="document.getElementById(&#39;demo&#39;).play()">播放</button>
  <button onclick="document.getElementById(&#39;demo&#39;).pause()">暂停</button>
  <button onclick="document.getElementById(&#39;demo&#39;).volume+=0.1">降低音量</button>
  <button onclick="document.getElementById(&#39;demo&#39;).volume-=0.1">提高音量</button>
  </p>
Copy after login

停止下载视频文件

虽然我们可以使用pause()方法里让视频文件停止播放,但浏览器并未停止下载媒体文件,除非它达到了一定的缓存量。

下面是让浏览器如何停止下载视频文件的方法:

var mediaElement = document.getElementById("myMediaElementID");
mediaElement.pause();
mediaElement.src=&#39;&#39;;
//或
mediaElement.removeAttribute("src");
Copy after login

通过删除 src 属性(或者设置为空值),这样就能停止文件的网络下载。

设定播放的时间点定位


我们可以指定视频从某时某分某秒开始播放,这是通过设置 currentTime 属性来实现。

我们可以通过 seekable 属性来获得视频有效的播放时间范围。它会返回一个TimeRanges 对象,能够告诉你有效的开始时间和结束时间。

var mediaElement = document.getElementById(&#39;mediaElementID&#39;);
mediaElement.seekable.start(0);  // 返回开始时间 (秒)
mediaElement.seekable.end(0);    // 返回结束时间 (秒)
mediaElement.currentTime = 122; // 定位到第 122 秒播放
mediaElement.played.end(0);      // 返回已经播放的时间长度(秒)
Copy after login


设定播放范围


当在网页里嵌入视频/音频文件时,

它的具体语法是这样的:

#t=[开始时间][,结束时间]
Copy after login

时间的表示方法可以使用秒数,也可以提供一个 ”时:分:秒“ 格式的时间(例如 2:05:01 )。/p>

举例:

www.webhek.com/video.ogg#t=10,20

指定视频从10秒开始播放,到20秒处结束。

www.webhek.com/video.ogg#t=,10.5

指定视频从头开始播放到 10.5 秒处。

www.webhek.com/video.ogg#t=,02:00:00

指定视频播放2小时。

www.webhek.com/video.ogg#t=60

指定视频从第60秒开始播放,播放到结束。

设置视频封面(poster参数)

当视频不是自动播放时,在有些浏览器里,视频在未播放前的缺省界面是空白,这样很没有意义,我们可以给视频设定一个封面,用视频里的某个比较具有代表意义的画面截图作为视频的封面,设定视频封面的参数是 poster:

<video poster=&#39;cover.jpg&#39; src="http://www.webhek.com/~j/theora_testsuite/320x240.ogg" controls autoplay loop>
  Your browser does not support the <code>video</code> element.</video>
Copy after login

当视频加载遇到错误时的补救方法

有时候视频资源会失效,或加载失败,或者浏览器不能解码当前视频格式,当遇到这种情况,我们应该给与补救措施,替换当前视频资源地址,或用其它措施补救,比如将video对象替换成图片。我们可以使用JavaScript对视频加载中的“error”事件进行监听,比如对于下面的视频资源:

<video controls>
  <source src="dynamicsearch.mp4" type="video/mp4"></source>
  <a href="dynamicsearch.mp4">
    <img  data-original="dynamicsearch.jpg" alt="Dynamic app search in Firefox OS">
  </a>
  <p>Click image to play a video demo of dynamic app search</p>
</video>
Copy after login

我们使用下面的js代码进行补救:

var v = document.querySelector(&#39;video&#39;),
    sources = v.querySelectorAll(&#39;source&#39;),
    lastsource = sources[sources.length-1];
lastsource.addEventListener(&#39;error&#39;, function(ev) {
  var d = document.createElement(&#39;p&#39;);
  d.innerHTML = v.innerHTML;
  v.parentNode.replaceChild(d, v);
}, false);
Copy after login

以上就是HTML5视频播放器

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!