# HTML 音频
**在 HTML 中播放声音的方法有很多种。**
## 问题,问题,以及解决方法
在 HTML 中播放音频并不容易!
您需要谙熟大量技巧,以确保您的音频文件在所有浏览器中(Internet Explorer, Chrome, Firefox, Safari, Opera)和所有硬件上(PC, Mac , iPad, iPhone)都能够播放。
在本章,W3School 为您总结了问题和解决方法。
## 使用插件
浏览器插件是一种扩展浏览器标准功能的小型计算机程序。
插件有很多用途:播放音乐、显示地图、验证银行账号,控制输入等等。
可使用 <object> 或 <embed> 标签来将插件添加到 HTML 页面。
这些标签定义资源(通常非 HTML 资源)的容器,根据类型,它们即会由浏览器显示,也会由外部插件显示。
## 使用 <embed> 元素
<embed> 标签定义外部(非 HTML)内容的容器。(这是一个 HTML5 标签,在 HTML4 中是非法的,但是所有浏览器中都有效)。
下面的代码片段能够显示嵌入网页中的 MP3 文件:
### 实例
```
<embed height="100" width="100" src="song.mp3" />
```
### 问题:
* <embed> 标签在 HTML 4 中是无效的。页面无法通过 HTML 4 验证。
* 不同的浏览器对音频格式的支持也不同。
* 如果浏览器不支持该文件格式,没有插件的话就无法播放该音频。
* 如果用户的计算机未安装插件,无法播放音频。
* 如果把该文件转换为其他格式,仍然无法在所有浏览器中播放。
注释:使用 <!DOCTYPE html> (HTML5) 解决验证问题。
## 使用 <object> 元素
<object tag> 标签也可以定义外部(非 HTML)内容的容器。
下面的代码片段能够显示嵌入网页中的 MP3 文件:
### 实例
```
<object height="100" width="100" data="song.mp3"></object>
```
### 问题:
* 不同的浏览器对音频格式的支持也不同。
* 如果浏览器不支持该文件格式,没有插件的话就无法播放该音频。
* 如果用户的计算机未安装插件,无法播放音频。
* 如果把该文件转换为其他格式,仍然无法在所有浏览器中播放。
## 使用 HTML5 <audio> 元素
<audio> 元素是一个 HTML5 元素,在 HTML 4 中是非法的,但在所有浏览器中都有效。
### 实例
```
<audio controls="controls">
<source src="song.mp3" type="audio/mp3" />
<source src="song.ogg" type="audio/ogg" />
Your browser does not support this audio format.
</audio>
```
上面的例子使用了一个 mp3 文件,这样它在 Internet Explorer、Chrome 以及 Safari 中是有效的。
为了使这段音频在 Firefox 和 Opera 中同样有效,添加了一个 ogg 类型的文件。如果失败,会显示错误消息。
### 问题:
* <audio> 标签在 HTML 4 中是无效的。您的页面无法通过 HTML 4 验证。
* 您必须把音频文件转换为不同的格式。
* <audio> 元素在老式浏览器中不起作用。
注释:使用 <!DOCTYPE html> (HTML5) 解决验证问题。
## 最好的 HTML 解决方法
### 实例
```
<audio controls="controls" height="100" width="100">
<source src="song.mp3" type="audio/mp3" />
<source src="song.ogg" type="audio/ogg" />
<embed height="100" width="100" src="song.mp3" />
</audio>
```
上面的例子使用了两个不同的音频格式。HTML5 <audio> 元素会尝试以 mp3 或 ogg 来播放音频。如果失败,代码将回退尝试 <embed> 元素。
### 问题:
* 您必须把音频转换为不同的格式。
* <audio> 元素无法通过 HTML 4 和 XHTML 验证。
* <embed> 元素无法通过 HTML 4 和 XHTML 验证。
* <embed> 元素无法回退来显示错误消息。
注释:使用 <!DOCTYPE html> (HTML5) 解决验证问题。
## 向网站添加音频的最简单方法
向网页添加音频的最简单的方法是什么?
雅虎的媒体播放器绝对算其中之一。
使用雅虎媒体播放器是一个不同的途径。您只需简单地让雅虎来完成歌曲播放的工作就好了。
它能播放 mp3 以及一系列其他格式。通过一行简单的代码,您就可以把它添加到网页中,轻松地将 HTML 页面转变为专业的播放列表。
## 雅虎媒体播放器
### 实例
```
<a href="song.mp3">Play Sound</a>
<script type="text/javascript" src="http://mediaplayer.yahoo.com/js">
</script>
```
使用雅虎播放器是免费的。如需使用它,您需要把这段 JavaScript 插入网页底部:
```
<script type="text/javascript" src="http://mediaplayer.yahoo.com/js"></script>
```
然后只需简单地把 MP3 文件链接到您的 HTML 中,JavaScript 会自动地为每首歌创建播放按钮:
```
<a href="song1.mp3">Play Song 1</a>
<a href="song2.mp3">Play Song 2</a>
...
...
...
```
雅虎媒体播放器为您的用户提供的是一个小型的播放按钮,而不是完整的播放器。不过,当您点击该按钮,会弹出完整的播放器。
请注意,这个播放器始终停靠在窗框底部。只需点击它,就可将其滑出。
## 使用超链接
如果网页包含指向媒体文件的超链接,大多数浏览器会使用“辅助应用程序”来播放文件。
以下代码片段显示指向 mp3 文件的链接。如果用户点击该链接,浏览器会启动“辅助应用程序”来播放该文件:
### 实例
```
<a href="song.mp3">Play the sound</a>
```
## 内联的声音
当您在网页中包含声音,或者作为网页的组成部分时,它被称为内联声音。
如果您打算在 web 应用程序中使用内联声音,您需要意识到很多人都觉得内联声音令人恼火。同时请注意,用户可能已经关闭了浏览器中的内联声音选项。
我们最好的建议是只在用户希望听到内联声音的地方包含它们。一个正面的例子是,在用户需要听到录音并点击某个链接时,会打开页面然后播放录音。
## HTML 4.01 多媒体标签
| 标签 | 描述 |
| --- | --- |
| [`<applet>`](/tags/tag_applet.asp "HTML <applet> 标签") | 不赞成。定义内嵌 applet。 |
| `<embed>` | HTML4 中不赞成,HTML5 中允许。定义内嵌对象。 |
| [`<object>`](/tags/tag_object.asp "HTML <object> 标签") | 定义内嵌对象。 |
| [`<param>`](/tags/tag_param.asp "HTML <param> 标签") | 定义对象的参数。 |
## HTML 5 多媒体标签
| 标签 | 描述 |
| --- | --- |
| [`<audio>`](/tags/tag_audio.asp "HTML <audio> 标签") | 标签定义声音,比如音乐或其他音频流。 |
| [`<embed>`](/tags/tag_embed.asp "HTML <embed> 标签") | 标签定义嵌入的内容,比如插件。 |
- HTML 基础
- HTML 简介
- 基本的 HTML 标签 - 四个实例
- HTML 元素
- HTML 属性
- HTML 标题
- HTML 段落
- HTML 文本格式化
- HTML 编辑器
- HTML CSS
- HTML 链接
- HTML 图像
- HTML 表格
- HTML 列表
- HTML <div> 和 <span>
- HTML 布局
- HTML 表单和输入
- HTML 框架
- HTML Iframe
- HTML 背景
- HTML 颜色
- HTML 颜色名
- HTML 4.01 快速参考
- HTML 高级
- HTML <!DOCTYPE>
- HTML 头部元素
- HTML 脚本
- HTML 字符实体
- HTML 统一资源定位器
- HTML URL 字符编码
- HTML Web Server
- HTML 媒体
- HTML 多媒体
- HTML Object 元素
- HTML 音频
- HTML 视频
- HTML XHTML
- XHTML 简介
- XHTML - 元素
- XHTML - 属性
- HTML 5 教程
- HTML 5 简介
- HTML 5 视频
- HTML 5 Video + DOM
- HTML 5 音频
- HTML 5 拖放
- HTML 5 Canvas
- HTML5 内联 SVG
- HTML 5 Canvas vs. SVG
- HTML5 地理定位
- HTML 5 Web 存储
- HTML 5 应用程序缓存
- HTML 5 Web Workers
- HTML 5 服务器发送事件
- HTML5 Input 类型
- HTML5 表单元素
- HTML5 表单属性
- CSS 基础
- CSS 简介
- CSS 基础语法
- CSS 高级语法
- CSS 派生选择器
- CSS id 选择器
- CSS 类选择器
- CSS 属性选择器
- 如何创建 CSS
- CSS 样式
- CSS 背景
- CSS 文本
- CSS 字体
- CSS 链接
- CSS 列表
- CSS 表格
- CSS 轮廓
- CSS 框模型
- CSS 框模型概述
- CSS 内边距
- CSS 边框
- CSS 外边距
- CSS 外边距合并
- CSS 定位
- CSS 定位 (Positioning)
- CSS 相对定位
- CSS 绝对定位
- CSS 浮动
- CSS 选择器
- CSS 元素选择器
- CSS 分组
- CSS 类选择器详解
- CSS ID 选择器详解
- CSS 属性选择器详解
- CSS 后代选择器
- CSS 属性选择器详解
- CSS 后代选择器
- CSS 子元素选择器
- CSS 相邻兄弟选择器
- CSS 伪类 (Pseudo-classes)
- CSS 伪元素 (Pseudo-elements)
- CSS 高级
- CSS 水平对齐
- CSS 尺寸 (Dimension)
- CSS 分类 (Classification)
- CSS 导航条
- CSS 图片库
- CSS 图像透明度
- CSS2 媒介类型
- CSS 注意事项
- CSS3 教程
- CSS3 简介
- CSS3 边框
- CSS3 背景
- CSS3 文本效果
- CSS3 字体
- CSS3 2D 转换
- CSS3 3D 转换
- CSS3 过渡
- CSS3 动画
- CSS3 多列
- CSS3 用户界面
- Firebug 教程
- Firebug 教程
- 使用Firebug查看和编辑HTML和CSS
- 使用 Firebug 调试 JavaScript
- Firebug页面概况查看
- Firebug动态执行JavaScript
- Firebug记录Javascript日志
- Firebug监控网络情况
- 免责声明