HTML 音頻(Audio)
聲音在HTML中可以以不同的方式播放.
問題以及解決方法
在 HTML 中播放音頻並不容易!
您需要諳熟大量技巧,以確保您的音頻檔在所有流覽器中(Internet Explorer, Chrome, Firefox, Safari, Opera)和所有硬體上(PC, Mac , iPad, iPhone)都能夠播放。
在本章,IT研修為您總結了問題和解決方法。
使用插件
流覽器插件是一種擴展流覽器標準功能的小型電腦程式。
插件可以使用 <object> 標籤 或者 <embed> 標籤添加在頁面上.
這些標籤定義資源(通常非 HTML 資源)的容器,根據類型,它們即會由流覽器顯示,也會由外部插件顯示。
使用 <embed> 元素
<embed>標籤定義外部(非 HTML)內容的容器。(這是一個 HTML5 標籤,在 HTML4 中是非法的,但是所有流覽器中都有效)。
下麵的代碼片段能夠顯示嵌入網頁中的 MP3 檔:
實例
問題:
- <embed> 標籤在 HTML 4 中是無效的。頁面無法通過 HTML 4 驗證。
- 不同的流覽器對音頻格式的支持也不同。
- 如果流覽器不支持該檔格式,沒有插件的話就無法播放該音頻。
- 如果用戶的電腦未安裝插件,無法播放音頻。
- 如果把該檔轉換為其他格式,仍然無法在所有流覽器中播放。
使用 <object> 元素
<object tag> 標籤也可以定義外部(非 HTML)內容的容器。
下麵的代碼片段能夠顯示嵌入網頁中的 MP3 檔:
實例
問題:
- 不同的流覽器對音頻格式的支持也不同。
- 如果流覽器不支持該檔格式,沒有插件的話就無法播放該音頻。
- 如果用戶的電腦未安裝插件,無法播放音頻。
- 如果把該檔轉換為其他格式,仍然無法在所有流覽器中播放。
使用 HTML5 <audio> 元素
HTML5 <audio> 元素是一個 HTML5 元素,在 HTML 4 中是非法的,但在所有流覽器中都有效。
The <audio> element works in all modern browsers.
流量器相容
格中的數字表示支持該屬性的第一個流覽器版本號。
元素 | |||||
---|---|---|---|---|---|
<audio> | 4.0 | 9.0 | 3.5 | 4.0 | 10.5 |
以下我們將使用 <audio> 標籤來描述 MP3 檔(Internet Explorer、Chrome 以及 Safari 中是有效的), 同樣添加了一個 OGG 類型檔(Firefox 和 Opera流覽器中有效).如果失敗,它會顯示一個錯誤文本資訊:
實例
<source src="horse.mp3" type="audio/mpeg">
<source src="horse.ogg" type="audio/ogg">
Your browser does not support this audio format.
</audio>
問題:
- <audio> 標籤在 HTML 4 中是無效的。您的頁面無法通過 HTML 4 驗證。
- 您必須把音頻檔轉換為不同的格式。
- <audio> 元素在老式流覽器中不起作用。
最好的 HTML 解決方法
下麵的例子使用了兩個不同的音頻格式。HTML5 <audio> 元素會嘗試以 mp3 或 ogg 來播放音頻。如果失敗,代碼將回退嘗試 <embed> 元素。
實例
<source src="horse.mp3" type="audio/mpeg">
<source src="horse.ogg" type="audio/ogg">
<embed height="50" width="100" src="horse.mp3">
</audio>
問題:
- 您必須把音頻轉換為不同的格式。
- <embed> 元素無法回退來顯示錯誤消息。
使用超鏈接
如果網頁包含指向媒體檔的超鏈接,大多數流覽器會使用"輔助應用程式"來播放檔。
以下代碼片段顯示指向 mp3 檔的鏈接。如果用戶點擊該鏈接,流覽器會啟動"輔助應用程式"來播放該檔:
實例
內聯的聲音說明
當您在網頁中包含聲音,或者作為網頁的組成部分時,它被稱為內聯聲音。
如果您打算在 web 應用程式中使用內聯聲音,您需要意識到很多人都覺得內聯聲音令人惱火。同時請注意,用戶可能已經關閉了流覽器中的內聯聲音選項。
我們最好的建議是只在用戶希望聽到內聯聲音的地方包含它們。一個正面的例子是,在用戶需要聽到錄音並點擊某個鏈接時,會打開頁面然後播放錄音。
HTML 多媒體標籤
New : HTML5 新標籤
標籤 | 描述 |
---|---|
<embed> | 定義內嵌對象。HTML4 中不贊成,HTML5 中允許。 |
<object> | 定義內嵌對象。 |
<param> | 定義對象的參數。 |
<audio>New | 定義了聲音內容 |
<video>New | 定義一個視頻或者影片 |
<source>New | 定義了media元素的多媒體資源(<video> 和 <audio>) |
<track>New | 規定media元素的字幕檔或其他包含文本的檔 (<video> 和<audio>) |