--- title: Audio() slug: Web/API/HTMLAudioElement/Audio tags: - API - Audio - DOM - 参考 - 多媒体 - 构造器 - 音频 translation_of: Web/API/HTMLAudioElement/Audio ---

{{APIRef("HTML DOM")}}

Audio() 构造器创建并返回一个 {{domxref("HTMLAudioElement")}},可以将它附加到文档中以供用户交互,也可以用于管理和播放背景音乐。

语法

audioObj = new Audio(url);

参数

url {{optional_inline}}
一个可选的、包含音频文件 URL 的 {{domxref("DOMString")}}。

返回值

新创建的 {{domxref("HTMLAudioElement")}} 对象,被设置为播放指定 url的音频文件。新对象的 {{domxref("HTMLMediaElement.preload", "preload")}} 属性被设置为 auto 且它的 src 属性被设置为具体的 URL 或 null (当没有提供 URL 时)。如果提供了 URL,浏览器在返回新对象之前开始异步加载媒体资源。

使用备注

你也可以使用其他元素创建方法,例如 {{domxref("document")}} 对象的 {{domxref("Document.createElement", "createElement()")}} 方法,去构建一个新的 {{domxref("HTMLAudioElement")}}.

检测回放时机

提供三种方法给开发者,判断音频文件是否已经加载,允许开始回放:

基于事件的方法是最优的:

myAudioElement.addEventListener("canplaythrough", event => {
  /* 音频可以播放;如果权限允许则播放 */
  myAudioElement.play();
});

内存使用与管理

如果所有使用 Audio() 构造函数创建的 audio 元素被删除,根据 JavaScript 垃圾回收机制,如果播放正在进行,内存中的 audio 元素不会被移除。相反,音频将会继续播放并且它的对象会保留在内存中,直到播放结束或是被暂停(例如调用 {{domxref("HTMLMediaElement.pause", "pause()")}})。在那个时候,这个对象才会成为垃圾回收的目标。

规范

规范 状态 备注
{{SpecName('HTML WHATWG', "#dom-audio", "Audio()")}} {{Spec2('HTML WHATWG')}}

浏览器兼容性

The compatibility table on this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.

{{Compat("api.HTMLAudioElement.Audio")}}

参见