首頁 web前端 H5教程 HTML5视频播放器<video>和音频播放器<audio>用法

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

Mar 30, 2017 pm 01:30 PM
audio html5 video

  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>
登入後複製

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

下面这个例子是在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 属性。

用JavaScript控制视频/音频播放

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

var v = document.getElementsByTagName("video")[0];v.play();
登入後複製

用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>
登入後複製

停止下载视频文件

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

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

var mediaElement = document.getElementById("myMediaElementID");
mediaElement.pause();
mediaElement.src=&#39;&#39;;
//或
mediaElement.removeAttribute("src");
登入後複製

通过删除 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);      // 返回已经播放的时间长度(秒)
登入後複製


设定播放范围


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

它的具体语法是这样的:

#t=[开始时间][,结束时间]
登入後複製

时间的表示方法可以使用秒数,也可以提供一个 ”时:分:秒“ 格式的时间(例如 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>
登入後複製

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

有时候视频资源会失效,或加载失败,或者浏览器不能解码当前视频格式,当遇到这种情况,我们应该给与补救措施,替换当前视频资源地址,或用其它措施补救,比如将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>
登入後複製

我们使用下面的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);
登入後複製

以上就是HTML5视频播放器

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前 By 尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

HTML 中的表格邊框 HTML 中的表格邊框 Sep 04, 2024 pm 04:49 PM

HTML 中的表格邊框

HTML 中的巢狀表 HTML 中的巢狀表 Sep 04, 2024 pm 04:49 PM

HTML 中的巢狀表

HTML 左邊距 HTML 左邊距 Sep 04, 2024 pm 04:48 PM

HTML 左邊距

Klipsch 推出 Flexus Core 300 旗艦條形音箱,支援 8K、12 個揚聲器和房間校正 Klipsch 推出 Flexus Core 300 旗艦條形音箱,支援 8K、12 個揚聲器和房間校正 Sep 05, 2024 am 10:16 AM

Klipsch 推出 Flexus Core 300 旗艦條形音箱,支援 8K、12 個揚聲器和房間校正

HTML 表格佈局 HTML 表格佈局 Sep 04, 2024 pm 04:54 PM

HTML 表格佈局

在 HTML 中移動文字 在 HTML 中移動文字 Sep 04, 2024 pm 04:45 PM

在 HTML 中移動文字

HTML 有序列表 HTML 有序列表 Sep 04, 2024 pm 04:43 PM

HTML 有序列表

HTML onclick 按鈕 HTML onclick 按鈕 Sep 04, 2024 pm 04:49 PM

HTML onclick 按鈕

See all articles