iT邦幫忙

2023 iThome 鐵人賽

DAY 27
0
Modern Web

跟著 OXXO 一起學 HTML系列 第 69

( Day 27.1 ) HTML 播放影片 <video>

  • 分享至 

  • xImage
  •  

<video> 播放影片元素可以在 HTML 裡讀取並播放指定格式的影片,甚至可以搭配 <source><track> 元素,載入不同格式影片或加上字幕,這篇教學會介紹 <video> 播放影片元素以及相關用法。

原文參考:播放影片 video

認識 <video>

<video> 播放影片元素可以在 HTML 裡讀取並播放影片,影片支援的格式有 MP4 ( .mp4、.m4v )、WebM ( webm ) 和 Ogg ( .ogg ),影片聲音支援的格式有 MP3 ( .mp3 )、WAV ( .wav ) 和 Ogg ( .ogg ),使用上通常會搭配 <source> 表示影片來源,<track> 表示字幕來源。

  • <video> 屬於「容器元素」,需要有「起始標籤」以及「結束標籤」,放在標籤的內容只有在影片無法載入時才會顯示。
  • <video> 預設不會強制換行。
  • <video> 不可以是 <a><button> 的子元素。
  • <source> 只能是 <video><audio><picture> 的子元素。

例如下方的 HTML 開啟後,會使用 <video> 在網頁中放入一個影片播放元素,點擊播放就會播放影片 ( 不同瀏覽器會有不同樣式的播放控制器 )。

<video src="test.mp4" width="400" controls></video>

HTML 教學 - 播放影片  - 認識

除了有多個格式的影片檔,也可使用 <source> 的方式「由上而下」載入,只要瀏覽器順利載入,就會忽略後方的影片,以下方的程式碼為例,網頁中可以放入 MP4 和 Ogg 兩種格式的影片,當網頁能正確載入 MP4 時,就不會載入 OGG 格式影片。

<video width="400" controls>
  <source src="test.mp4" type="video/mp4">
  <source src="test.ogg" type="video/ogg">
</video>

<video> 支援屬性

<video> 除了支援「全域屬性」以及「可見元素的事件屬性」( 參考「HTML 元素屬性」),也會使用專門的屬性:

屬性 說明
src 影片網址。
poster 指定影片尚未載入時,預覽的圖片網址。
autoplay 使用後,影片載入完成就會自動播放。
controls 使用後,會出現影片控制器。
loop 使用後,影片播放完畢會自動重播。
muted 使用後,影片靜音。
preload 是否預載影片,可設定 none 不要預載,metadata 載入資訊資料,auto 預先下載。
mediagroup 影片分組的群組名稱。
width 影片寬度,若只設定寬度,則高度會按照原始影片長寬比例縮放。
height 影片高度,若只設定高度,則寬度會按照原始影片長寬比例縮放。

影片的 <source> 專門使用的屬性:

屬性 說明
src 影片網址。
type 影片格式,可使用 video/mp4、video/ogg 或 video/webm。

以下方的 HTML 為例,網頁開啟後,會出現寬度 400px 的影片的區塊,區塊中會出現播放控制器,並呈現 test.jpg 的預覽圖,影片播放完畢後會自動重播。

html >>>>
<video width="400" controls loop poster="test.jpg">
  <source src="test.mp4" type="video/mp4">
  <source src="test.ogg" type="video/ogg">
</video>

HTML 教學 - 播放影片  - 認識

使用 <track> 加入字幕

<track> 是放在 <video> 裡的字幕元素,可以替影片載入 .vtt 格式的字幕檔案 ( 參考:WebVTT )。

  • 使用 <track>必須是「架設在網頁伺服器」的網頁,才能讀取到字幕檔案,單純開啟網頁檔無法看到字幕
  • 可使用一些線上工具產生 vtt 檔案,例如:HTML5 Video Caption Maker

<track> 相關屬性如下:

屬性 說明
src 字幕檔案來源。
kind 字幕類型,可設定 subtitles ( 預設 )、captions、descriptions、chapters 和 metadata。
label 讓使用者可以從控制器切換字幕語系的顯示選項。
srclang 指定字幕語言,可設定 zh-tw ( 繁體中文 )、zh-ch ( 簡體中文 ) 或 en ( 英文 )...等。
default 預設哪個字幕檔案先顯示。

kind 屬性的內容說明如下:

內容 說明
subtitles 字幕檔案。
captions 使用者無法聽到聲音的狀況下可使用的字幕檔案。
descriptions 使用者無法看到影像的狀況下可使用的字幕檔案 ( 可能會透過其他方式轉換成聲音 )。
chapters 章節標題,切換內容時使用。
metadata 提供給 JavaScript 的資訊,不會在畫面中顯示。

以下方的 HTML 為例,影片載入後,可以透過控制器的選單,切換字幕。

html >>>>
<video width="400" controls loop>
  <source src="test.mp4" type="video/mp4">
  <source src="test.mp3" type="video/ogg">
  <track src="test.vtt" srclang="en" label="English" default>
  <track src="test-tw.vtt" srclang="zh-tw" label="繁體中文">
</video>

HTML 教學 - 播放影片  - 加入字幕

更多教學

大家好,我是 OXXO,是個即將邁入中年的斜槓青年,我有個超過一千篇教學的 STEAM 教育學習網,有興趣可以參考下方連結呦~ ^_^


上一篇
( Day 26.2 ) HTML 頁尾區塊 <footer>
下一篇
( Day 27.2 ) HTML 播放聲音 <audio>
系列文
跟著 OXXO 一起學 HTML90
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言