HTML 音频

前言

  • 声音在 HTML 中可以以不同的方式播放。

1、多媒体标签

标签 描述 备注 🔗
<embed /> 定义内嵌对象。HTML4 中不赞成,HTML5 中允许 H5 新加 🔗
<object> </object> 定义内嵌对象 🔗
<param /> 定义对象的参数 🔗
<audio> </audio> 定义了声音内容 H5 新加 🔗
<video> </video> 定义一个视频或者影片 H5 新加 🔗
<source /> 定义了 media 元素的多媒体资源(<video><audio>) H5 新加 🔗
<track /> 规定 media 元素的字幕文件或其他包含文本的文件 (<video><audio>) H5 新加 🔗

2、内联的声音说明

  • 当您在网页中包含声音,或者作为网页的组成部分时,它被称为内联声音。

  • 如果您打算在 web 应用程序中使用内联声音,您需要意识到很多人都觉得内联声音令人恼火。同时请注意,用户可能已经关闭了浏览器中的内联声音选项。

  • 我们最好的建议是只在用户希望听到内联声音的地方包含它们。一个正面的例子是,在用户需要听到录音并点击某个链接时,会打开页面然后播放录音。

3、属性

3.1 < audio > 标签属性

属性 描述 备注 🔗
autoplay autoplay 如果出现该属性,则音频在就绪后马上播放 H5 新加 🔗
controls controls 如果出现该属性,则向用户显示音频控件(比如播放/暂停按钮) H5 新加 🔗
loop loop 如果出现该属性,则每当音频结束时重新开始播放 H5 新加 🔗
muted muted 如果出现该属性,则音频输出为静音 H5 新加 🔗
preload auto
metadata
none
规定当网页加载时,音频是否默认被加载以及如何被加载 H5 新加 🔗
src URL 规定音频文件的 URL H5 新加 🔗

3.2 < source > 标签属性

属性 描述 备注 🔗
media media_query 规定媒体资源的类型,供浏览器决定是否下载 H5 新加 🔗
src URL 规定媒体文件的 URL H5 新加 🔗
type MIME_type 规定媒体资源的 MIME 类型 H5 新加 🔗

3.3 < track > 标签属性

属性 描述 备注 🔗
default default 规定该轨道是默认的。如果用户没有选择任何轨道,则使用默认轨道 H5 新加 🔗
kind captions
chapters
descriptions
metadata
subtitles
规定文本轨道的文本类型 H5 新加 🔗
label text 规定文本轨道的标签和标题 H5 新加 🔗
src URL 必需的。规定轨道文件的 URL H5 新加 🔗
srclang language_code 规定轨道文本数据的语言。如果 kind 属性值是 “subtitles”,则该属性是必需的 H5 新加 🔗

4、播放音频

  • 在 HTML 中播放音频并不容易!

  • 需要谙熟大量技巧,以确保您的音频文件在所有浏览器中(Internet Explorer, Chrome, Firefox, Safari, Opera)和所有硬件上(PC, Mac , iPad, iPhone)都能够播放。

  • 在本章,总结了问题和解决方法。

4.1 使用 < embed > 标签

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

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

  • 示例

    1
    <embed src="https://demo.qianchia.com/media/audio/demo1.mp3" width="300" height="150" />
  • 效果

  • 问题

    • <embed> 标签在 HTML 4 中是无效的。页面无法通过 HTML 4 验证。
    • 不同的浏览器对音频格式的支持也不同。
    • 如果浏览器不支持该文件格式,没有插件的话就无法播放该音频。
    • 如果用户的计算机未安装插件,无法播放音频。
    • 如果把该文件转换为其他格式,仍然无法在所有浏览器中播放。

4.2 使用 < object > 标签

  • <object> 标签也可以定义外部(非 HTML)内容的容器。

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

  • 示例

    1
    <object data="https://demo.qianchia.com/media/audio/demo1.mp3" width="300" height="150"></object>
  • 效果

  • 问题

    • 不同的浏览器对音频格式的支持也不同。
    • 如果浏览器不支持该文件格式,没有插件的话就无法播放该音频。
    • 如果用户的计算机未安装插件,无法播放音频。
    • 如果把该文件转换为其他格式,仍然无法在所有浏览器中播放。

4.3 使用 HTML5 < audio > 元素

  • HTML5 <audio> 标签定义了一个音频。

  • <audio> 元素在所有现代浏览器中都支持。

  • 以下我们将使用 <audio> 标签来描述 MP3 文件(Internet Explorer、Chrome 以及 Safari 中是有效的),同样添加了一个 OGG 类型文件(Firefox 和 Opera 浏览器中有效)。

  • 示例

    1
    2
    3
    4
    <audio controls>
    <source src="https://demo.qianchia.com/media/audio/demo1.mp3" type="audio/mpeg" />
    <source src="https://demo.qianchia.com/media/audio/demo2.ogg" type="audio/ogg" />
    </audio>
  • 效果

  • 问题

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

4.4 最好的 HTML 解决方法

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

  • 示例

    1
    2
    3
    4
    5
    6
    7
    8
    <audio controls>
    <source src="https://demo.qianchia.com/media/audio/demo1.mp3" type="audio/mpeg" />
    <source src="https://demo.qianchia.com/media/audio/demo2.ogg" type="audio/ogg" />

    <object data="https://demo.qianchia.com/media/audio/demo1.mp3" width="300" height="150">
    <embed src="https://demo.qianchia.com/media/audio/demo1.mp3" width="300" height="150" />
    </object>
    </audio>
  • 效果

  • 问题

    • 必须把音频转换为不同的格式。
    • <embed> 元素无法回退来显示错误消息。

4.5 使用超链接

  • 如果网页包含指向媒体文件的超链接,大多数浏览器会使用 “辅助应用程序” 来播放文件。

  • 以下代码片段显示指向 mp3 文件的链接。如果用户点击该链接,浏览器会启动”辅助应用程序”,来播放该文件。

  • 示例

    1
    <a href="https://demo.qianchia.com/media/audio/demo1.mp3">播放音频文件</a>
  • 效果

    播放音频文件

4.6 使用插件

  • 浏览器插件是一种扩展浏览器标准功能的小型计算机程序。

  • 插件可以使用 <object> 标签 或者 <embed> 标签添加在页面上。

  • 这些标签定义资源(通常非 HTML 资源)的容器,根据类型,它们即会由浏览器显示,也会由外部插件显示。

文章目录
  1. 1. 前言
  2. 2. 1、多媒体标签
  3. 3. 2、内联的声音说明
  4. 4. 3、属性
    1. 4.1. 3.1 < audio > 标签属性
    2. 4.2. 3.2 < source > 标签属性
    3. 4.3. 3.3 < track > 标签属性
  5. 5. 4、播放音频
    1. 5.1. 4.1 使用 < embed > 标签
    2. 5.2. 4.2 使用 < object > 标签
    3. 5.3. 4.3 使用 HTML5 < audio > 元素
    4. 5.4. 4.4 最好的 HTML 解决方法
    5. 5.5. 4.5 使用超链接
    6. 5.6. 4.6 使用插件
隐藏目录