HTML <video> 播放影片 / 多媒體影音串流
<video> 標籤 (tag) 是用來播放影片或影音串流。
語法:
<video src="clip.mp4" controls></video>
<video> 標籤的屬性 (attributes):
src
: 影片的位址 (URL)poster
: 指定一個圖片位址,做為影片未開始播放之前的預覽圖preload
: 給瀏覽器是否該預載影片的提示。有這些值可以使用:none
: 不要預載,因為使用者很可能不會播放該音訊,或你想多節省 server 頻寬metadata
: 先下載影片的元數據資料 (像是片長)auto
: 使用者很可能會播放該影片,可以先進行下載
autoplay
: 布林 (boolean) 屬性,控制是否自動播放影片,預設是false
loop
: 布林 (boolean) 屬性,控制是否重複播放影片,預設是false
muted
: 布林 (boolean) 屬性,控制是否靜音,預設是false
controls
: 布林 (boolean) 屬性,指定是否顯示影音控制面板,由瀏覽器提供上面會有播放進度、暫停鈕、播放鈕、靜音鈕等,預設是false
width
: 一個數字,設定影片顯示區域的寬度,單位是像素 (pixel)height
: 一個數字,設定影片顯示區域的高度,單位是像素 (pixel)
<video> 的音源位址除了用 src
屬性指定,也可以在 <video> 標籤裡面用 <source>
標籤來設定,可以用多個 <source> 指定不同格式類型的影片來源,而瀏覽器自己會挑第一個有支援的格式來載入。
<source> 標籤的屬性:
src
: 音訊位址 (URL)type
: 音訊的 MIME type,可能還會搭配有 codecs 指定編碼格式
使用範例:
<video controls>
<source src="dogs.mp4" type="video/mp4; codecs='avc1, mp4a'">
<source src="dogs.webm" type="video/webm; codecs='vp8.0, vorbis'">
</video>
<source> 是一個空元素不需要 closing tag。
<video> 裡面還可以用 <track> 標籤指定一個文字軌 - 基於時間的文字資訊檔 (timed text track),實際用途像是影片的字幕,可以有多個 <track> 指定不同的文字軌。
<track> 標籤的屬性:
src
: 文字軌的檔案位址,通常是一個 WebVTT 檔srclang
: 該文字軌的語言,像是en
,fr
等kind
: 定義該文字軌該如何被使用。可以有這些值:subtitles
: 字幕檔,例如英文電影的中文字幕。預設值captions
: 對內容的標注,適用於靜音或雜音過多等的情況descriptions
: 對影片的介紹,給 screen reader 用chapters
: 章節標題,在內容切換時使用metadata
: 使用者看不到,給 JavaScript 用的
label
: 當列出可以用的 track 時,給瀏覽器用的 track 標題default
: 設定為預設的文字軌
使用範例:
<video controls poster="/images/sample.gif">
<source src="sample.mp4" type="video/mp4">
<source src="sample.ogv" type="video/ogv">
<track kind="captions" src="sampleCaptions.vtt" srclang="en">
<track kind="descriptions" src="sampleDescriptions.vtt" srclang="en">
<track kind="chapters" src="sampleChapters.vtt" srclang="en">
<track kind="subtitles" src="sampleSubtitles_de.vtt" srclang="de">
<track kind="subtitles" src="sampleSubtitles_en.vtt" srclang="en">
<track kind="subtitles" src="sampleSubtitles_ja.vtt" srclang="ja">
<track kind="subtitles" src="sampleSubtitles_oz.vtt" srclang="oz">
<track kind="metadata" src="keyStage1.vtt" srclang="en" label="Key Stage 1">
<track kind="metadata" src="keyStage2.vtt" srclang="en" label="Key Stage 2">
<track kind="metadata" src="keyStage3.vtt" srclang="en" label="Key Stage 3">
</video>
<track> 是一個空元素不需要 closing tag。
在 <video> 裡面 <source> 和 <track> 以外的內容會被當做成是 fallback 內容,給瀏覽器在資源載入失敗或不支援 <video> 標籤時顯示。
<video controls>
<source src="dogs.mp4" type="video/mp4; codecs='avc1, mp4a'">
<source src="dogs.webm" type="video/webm; codecs='vp8.0, vorbis'">
<p>你的瀏覽器不支援 HTML 5 video</p>
</video>