HTML5 音訊和視訊
HTML5 特性,包括原生音訊和視訊支援而無需 Flash。
HTML5 <audio> 和 <video> 標籤讓我們給站點新增媒體變得簡單。我們只需要設定 src 屬性來識別媒體資源,包含 controls 屬性讓使用者可以播放和暫停媒體。
<video>
嵌入視訊
<video src="foo.mp4" width="300" height="200" controls>
Your browser does not support the <video> element.
</video>
目前的 HTML5 規範草案還沒有指定瀏覽器應該在 video 標籤中支援哪種視訊格式。但是最常用的視訊格式是:
- Ogg:帶有 Thedora 視訊編碼器和 Vorbis 音訊編碼器的 Ogg 檔案。
- mpeg4:帶有 H.264 視訊編碼器和 AAC 音訊編碼器的 MPEG4 檔案。
我們可以使用帶有媒體型別和其他屬性的 <source> 標籤指定媒體檔案。video 元素允許使用多個 source 元素,瀏覽器會使用第一個認可的格式:
<!DOCTYPE HTML>
<html>
<body>
<video width="300" height="200" controls autoplay>
<source src="/html5/foo.ogg" type="video/ogg" />
<source src="/html5/foo.mp4" type="video/mp4" />
Your browser does not support the <video> element.
</video>
</body>
</html>
video屬性規範
HTML5 video 標籤可以使用多個屬性控制外觀和感覺以及各種控制功能:
屬性 | 描述 |
---|---|
autoplay | 如果指定這個布林值屬性,只要沒有停止載入資料,視訊就會立刻開始自動播放。 |
autobuffer | 如果指定這個布林值屬性,即使沒有設定自動播放,視訊也會自動開始緩衝。 |
controls | 如果指定這個屬性,就允許使用者控制視訊播放,包括音量控制,快進,暫停或者恢復播放。 |
height | 這個屬性以 CSS 畫素的形式指定視訊顯示區域的高度。 |
loop | 如果指定這個布林值屬性,表示允許播放結束後自動回放。 |
preload | preload 屬性是用來快取大體積檔案的。它有三個可選值:"none" 不快取,"auto" 快取,"metadata" 只快取檔案元資訊 |
poster | 這是一個影像 URL,顯示到使用者播放或快進。 |
src | 要嵌入的視訊 URL。可選,可以在 video 塊中使用 <source> 元素替代來指定要嵌入的視訊。 |
width | 這個屬性以 CSS 畫素的形式指定視訊顯示區域的寬度。 |
<audio>
嵌入音訊
HTML5 支援的 <audio> 標籤用於在如下所示的 HTML 或 XHTML 文件中嵌入語音內容。
<audio src="foo.wav" controls autoplay>
Your browser does not support the <audio> element.
</audio>
當前的 HTML 草案規範還沒有指定瀏覽器應該在 audio 標籤中支援哪種音訊格式。但是最常用的音訊格式是 ogg,mp3和 wav。
我們可以使用帶媒體型別以及其他屬性的的 <source> 標籤指定媒體。Audio 元素允許使用多個 source 元素,並且瀏覽器會使用第一個認可的格式:
<!DOCTYPE HTML>
<html>
<body>
<audio controls autoplay>
<source src="/html5/audio.ogg" type="audio/ogg" />
<source src="/html5/audio.wav" type="audio/wav" />
Your browser does not support the <audio> element.
</audio>
</body>
</html>
Audio 屬性規範
HTML5 audio 標籤可以使用多個屬性來控制外觀,感受以及各種控制功能:
屬性 | 描述 |
---|---|
autoplay | 如果指定這個布林值屬性,只要沒停止載入資料,音訊就會立刻自動開始播放。 |
autobuffer | 如果指定這個布林值屬性,即使沒有設定自動播放,音訊也會自動開始緩衝。 |
controls | 如果指定這個屬性,表示允許使用者控制音訊播放,包括音量控制,快進以及暫停/恢復播放。 |
loop | 如果指定這個布林值屬性,表示允許音訊播放結束後自動回放。 |
preload | 這個屬性指定載入頁面時載入音訊並準備就緒。如果指定自動播放則忽略。 |
src | 要嵌入的音訊 URL。可選,可以在音訊塊裡 |
處理媒體事件
HTML5 audio 和 video 標籤可以用多個屬性利用 JavaScript 控制各種控制功能:
事件 | 描述 |
---|---|
abort | 播放中止時生成這個事件。 |
canplay | 足夠的資料可用並且媒體可以播放時生成這個事件。 |
ended | 播放完成時生成這個事件。 |
error | 發生錯誤時生成這個事件。 |
loadeddata | 媒體第一幀載入完成時生成這個事件。 |
loadstart | 開始載入媒體時生成這個事件。 |
pause | 播放暫停時生成這個事件。 |
play | 播放開始或者恢復時生成這個事件。 |
progress | 定期通知媒體下載進度時生成這個事件。 |
ratechange | 播放速度改變時生成這個事件。 |
seeked | 快進操作完成時生成這個事件。 |
seeking | 快進操作開始時生成這個事件。 |
suspend | 媒體載入被暫停時生成這個事件。 |
volumechange | 音訊音量變化時生成這個事件。 |
waiting | 請求操作(比如播放)被延遲,等待另一個操作完成(比如快進)時生成這個事件。 |
設定播放的時間點定位
我們可以指定視訊從某時某分某秒開始播放,這是通過設定 currentTime 屬性來實現。
我們可以通過 seekable 屬性來獲得視訊有效的播放時間範圍。它會返回一個 TimeRanges 物件,能夠告訴你有效的開始時間和結束時間。
var mediaElement = document.getElementById('mediaElementID');
mediaElement.seekable.start(0); // 返回開始時間 (秒)
mediaElement.seekable.end(0); // 返回結束時間 (秒)
mediaElement.currentTime = 122; // 定位到第 122 秒播放
mediaElement.played.end(0); // 返回已經播放的時間長度(秒)
設定播放範圍
當在網頁裡嵌入視訊/音訊檔案時, <audio> 或 <video> 元素允許我們提供一些額外的資訊來指定播放哪一時間段。實現的方法是在媒體檔案後面跟隨(“#”)格式的資訊。
它的具體語法是這樣的:
#t=[開始時間][,結束時間]
時間的表示方法可以使用秒數,也可以提供一個 ”時:分:秒“ 格式的時間(例如 2:05:01 )。
舉例:
http://www.webhek.com/video.ogg#t=10,20
指定視訊從10秒開始播放,到20秒處結束。
http://www.webhek.com/video.ogg#t=,10.5
指定視訊從頭開始播放到 10.5 秒處。
http://www.webhek.com/video.ogg#t=,02:00:00
指定視訊播放2小時。
http://www.webhek.com/video.ogg#t=60
指定視訊從第60秒開始播放,播放到結束。
相關文章
- 小程式音訊和視訊音訊
- HTML的音訊和視訊HTML音訊
- 第 9 章 音訊和視訊音訊
- 短視訊“音訊化”,音樂“視訊化”音訊
- 音視訊通訊——直播協議和視訊推流協議
- html5音訊HTML音訊
- 音視訊--音訊入門音訊
- 音視訊–音訊入門音訊
- 前端Html5(2)之多媒體音訊視訊標籤前端HTML音訊
- 音視訊--視訊入門
- 如何在PR中同步音訊和視訊音訊
- Android音視訊之MediaPlayer音視訊播放Android
- 視訊直播和實時音視訊區別調研
- 20款jQuery 的音訊和視訊外掛jQuery音訊
- html5視訊HTML
- Android音視訊之MediaRecorder音視訊錄製Android
- IOS音視訊(二)AVFoundation視訊捕捉iOS
- 視音訊播放音訊
- Android 音視訊開發 視訊編碼,音訊編碼格式Android音訊
- iOS開發:音訊播放、錄音、視訊播放、拍照、視訊錄製iOS音訊
- 音視訊開發-全網最全常用音視訊編碼和格式彙總
- 如何一鍵批量合併視訊、文案和音訊?音訊
- Mac音訊和視訊同步工具:Red Giant PluralEyesMac音訊
- 帶你用AVPlayer實現音訊和視訊播放音訊
- 基於webRTC技術 音訊和視訊,IM解Web音訊
- Android 音視訊 - MediaCodec 編解碼音視訊Android
- iOS 視訊剪下、旋轉,視訊新增音訊、新增水印,視訊匯出iOS音訊
- Mac線上視訊音訊提取工具Mac音訊
- 安裝Ubunutu音訊視訊庫音訊
- android音視訊指南-管理音訊焦點Android音訊
- iOS開發系列--音訊播放、錄音、視訊播放、拍照、視訊錄製(轉)iOS音訊
- 微信開發之網頁中加入視訊和音訊網頁音訊
- FFmpeg音視訊同步
- 音視訊系列之iOS: 音訊採集 AudioUnitiOS音訊
- 各種音訊視訊編碼方法音訊
- PsychoPy入門_03_視訊和音訊的呈現音訊
- HTML5視訊videoHTMLIDE
- HTML5 Audio(音訊)簡介HTML音訊