HTML5 音频

在 HTML5 中播放声音的方法有很多种。本章节主要讲解 HTML5 中新增的 audio 与 embed 标签在网页中添加音频。


使用 <audio> 元素

<audio> 元素是一个 HTML5 元素,在 HTML 4 中是非法的,但在所有浏览器中都有效。

实例
  1. <!DOCTYPE html>
  2. <html>
  3. <body>
  4. <object height="100" width="100" data="/example/audio/demo.mp3"></object>
  5. <p><b>注释:</b>浏览器可能需要安装插件以后,才能播放该文件。</p>
  6. </body>
  7. </html>

上面的例子使用了一个 mp3 文件,这样它在 Internet Explorer、Chrome 以及 Safari 中是有效的。

为了使这段音频在 Firefox 和 Opera 中同样有效,添加了一个 ogg 类型的文件。如果失败,会显示错误消息。

但是使用 audio 会存在以下问题:
  • <audio> 标签在 HTML 4 中是无效的。您的页面无法通过 HTML 4 验证。
  • 您必须把音频文件转换为不同的格式。
  • <audio> 元素在老式浏览器中不起作用。

使用 <embed> 元素

<embed> 标签定义外部(非 HTML)内容的容器。(这是一个 HTML5 标签,在 HTML4 中是非法的,但是所有浏览器中都有效)。

下面的代码片段能够显示嵌入网页中的 MP3 文件:

实例
  1. <!DOCTYPE html>
  2. <html>
  3. <body>
  4. <embed height="100" width="100" src="/example/mp3/demo.mp3"></embed>
  5. <p><b>注释:</b>浏览器可能需要安装插件以后,才能播放该文件。</p>
  6. </body>
  7. </html>
使用 embed 会存在以下问题:
  • <embed> 标签在 HTML 4 中是无效的。页面无法通过 HTML 4 验证。
  • 不同的浏览器对音频格式的支持也不同。
  • 如果浏览器不支持该文件格式,没有插件的话就无法播放该音频。
  • 如果用户的计算机未安装插件,无法播放音频。
  • 如果把该文件转换为其他格式,仍然无法在所有浏览器中播放。

最好的实现方式

实例
  1. <!DOCTYPE HTML>
  2. <html>
  3. <body>
  4. <audio controls="controls">
  5. <source src="/example/audio/song.ogg" type="audio/ogg">
  6. <source src="/example/audio/song.mp3" type="audio/mpeg">
  7. <embed height="100" width="100" src="/example/audio/song.mp3" />
  8. 您的浏览器不支持 audio 元素.
  9. </audio>
  10. </body>
  11. </html>

上面的例子使用了两个不同的音频格式。HTML5 <audio> 元素会尝试以 mp3 或 ogg 来播放音频。如果失败,代码将回退尝试 <embed> 元素。

依然存在以下问题:
  • 您必须把音频转换为不同的格式。
  • <audio> 元素无法通过 HTML 4 和 XHTML 验证。
  • <embed> 元素无法通过 HTML 4 和 XHTML 验证。
  • <embed> 元素无法回退来显示错误消息。

注释:使用 <!DOCTYPE html> (HTML5) 解决验证问题。


HTML 5 多媒体标签

标签描述
<audio>标签定义声音,比如音乐或其他音频流。
<embed>标签定义嵌入的内容,比如插件。