HTML5 video audio 元素詳解

Hhy_9288發表於2018-03-09

Web 上的視訊和音訊

直到現在,仍然不存在一項旨在網頁上顯示視訊和音訊的標準。

今天,大多數視訊和音訊是通過外掛(比如 Flash)來顯示的。然而,並非所有瀏覽器都擁有同樣的外掛。

HTML5 規定了一種通過 video 元素來包含視訊audio元素來包含音訊的標準方法。

視訊格式

當前,video 元素支援三種視訊格式:

格式IEFirefoxOperaChromeSafari
OggNo3.5+10.5+5.0+No
MPEG 49.0+NoNo5.0+3.0+
WebMNo4.0+10.6+6.0+No

Ogg = 帶有 Theora 視訊編碼和 Vorbis 音訊編碼的 Ogg 檔案

MPEG4 = 帶有 H.264 視訊編碼和 AAC 音訊編碼的 MPEG 4 檔案

WebM = 帶有 VP8 視訊編碼和 Vorbis 音訊編碼的 WebM 檔案

如需在 HTML5 中播放視訊,您所有需要的是:

<video src="movie.ogg" controls="controls">
</video>

control 屬性供新增播放、暫停和音量控制元件。

瀏覽器相容:<video> 與 </video> 之間插入的內容是供不支援 video元素的瀏覽器顯示的。

上面的例子使用一個 Ogg 檔案,適用於Firefox、Opera 以及 Chrome 瀏覽器。

要確保適用於 Safari 瀏覽器,視訊檔案必須是 MPEG4 型別。

video 元素允許多個 source 元素。source 元素可以連結不同的視訊檔案。瀏覽器將使用第一個可識別的格式:

<video width="320" height="240" controls="controls">
  <source src="movie.ogg" type="video/ogg">
  <source src="movie.mp4" type="video/mp4">
Your browser does not support the video tag.
</video>

<video> 標籤的屬性

屬性描述
autoplayautoplay如果出現該屬性,則視訊在就緒後馬上播放。
controlscontrols如果出現該屬性,則向使用者顯示控制元件,比如播放按鈕。
heightpixels設定視訊播放器的高度。
looploop如果出現該屬性,則當媒介檔案完成播放後再次開始播放。
preloadpreload

如果出現該屬性,則視訊在頁面載入時進行載入,並預備播放。

如果使用 "autoplay",則忽略該屬性。

srcurl要播放的視訊的 URL。
widthpixels設定視訊播放器的寬度。

HTML5 <video> - 使用 DOM 進行控制

HTML5 <video> 元素同樣擁有方法、屬性和事件。

其中的方法用於播放、暫停以及載入等。其中的屬性(比如時長、音量等)可以被讀取或設定。其中的 DOM 事件能夠通知您,比方說,<video> 元素開始播放、已暫停,已停止,等等。

為視訊建立簡單的播放/暫停以及調整尺寸控制元件:

<!DOCTYPE html> 
<html> 
<body> 
<div style="text-align:center;">
  <button onclick="playPause()">播放/暫停</button> 
  <button onclick="makeBig()">大</button>
  <button onclick="makeNormal()">中</button>
  <button onclick="makeSmall()">小</button>
  <br /> 
  <video id="video1" width="420" style="margin-top:15px;">
    <source src="/example/html5/mov_bbb.mp4" type="video/mp4" />
    <source src="/example/html5/mov_bbb.ogg" type="video/ogg" />
    Your browser does not support HTML5 video.
  </video>
</div> 
<script type="text/javascript">
var myVideo=document.getElementById("video1");
function playPause()
{ 
if (myVideo.paused) 
  myVideo.play(); 
else 
  myVideo.pause(); 
} 
function makeBig()
{ 
myVideo.width=560; 
} 
function makeSmall()
{ 
myVideo.width=320; 
} 
function makeNormal()
{ 
myVideo.width=420; 
} 
</script> 
</body> 
</html>

上面的例子呼叫了兩個方法:play() 和 pause()。它同時使用了兩個屬性:paused 和 width。

HTML5 <video> - 方法、屬性以及事件

下面列出了大多數瀏覽器支援的視訊方法、屬性和事件:

方法屬性事件
play()currentSrcplay
pause()currentTimepause
load()videoWidthprogress
canPlayTypevideoHeighterror

durationtimeupdate

endedended

errorabort

pausedempty

mutedemptied

seekingwaiting

volumeloadedmetadata

height

width

註釋:在所有屬性中,只有 videoWidth 和 videoHeight 屬性是立即可用的。在視訊的後設資料已載入後,其他屬性才可用。

音訊格式

當前,audio 元素支援三種音訊格式:


IE 9Firefox 3.5Opera 10.5Chrome 3.0Safari 3.0
Ogg Vorbis

MP3

Wav


如需在 HTML5 中播放音訊,您所有需要的是:

<audio src="song.ogg" controls="controls">
</audio>

control 屬性供新增播放、暫停和音量控制元件。

瀏覽器相容:<audio> 與 </audio> 之間插入的內容是供不支援 audio 元素的瀏覽器顯示的。

上面的例子使用一個 Ogg 檔案,適用於Firefox、Opera 以及 Chrome 瀏覽器。

要確保適用於 Safari 瀏覽器,音訊檔案必須是 MP3 或 Wav 型別。

audio 元素允許多個 source 元素。source 元素可以連結不同的音訊檔案。瀏覽器將使用第一個可識別的格式:

例項

<audio controls="controls">
  <source src="song.ogg" type="audio/ogg">
  <source src="song.mp3" type="audio/mpeg">
Your browser does not support the audio tag.
</audio>

<audio> 標籤的屬性

屬性描述
autoplayautoplay如果出現該屬性,則音訊在就緒後馬上播放。
controlscontrols如果出現該屬性,則向使用者顯示控制元件,比如播放按鈕。
looploop如果出現該屬性,則每當音訊結束時重新開始播放。
preloadpreload

如果出現該屬性,則音訊在頁面載入時進行載入,並預備播放。

如果使用 "autoplay",則忽略該屬性。

srcurl要播放的音訊的 URL。

參考文獻:

http://www.w3school.com.cn/tags/tag_video.asp

http://www.w3school.com.cn/html5/html_5_video_dom.asp

http://www.w3school.com.cn/tags/tag_audio.asp




相關文章