HTMLAudioElement: Audio() 构造函数

基线 广泛可用

此功能已得到很好的建立,并在许多设备和浏览器版本中运行良好。它自 2015 年 7 月.

报告反馈

语法

**Audio()** 构造函数创建并返回一个新的 HTMLAudioElement,它可以附加到文档供用户交互和/或收听,或者可以在后台使用以管理和播放音频。
new Audio()
new Audio(url)

js

url 可选

一个可选的字符串,包含与新音频元素关联的音频文件的 URL。

返回值

一个新的 HTMLAudioElement 对象,配置为用于播放由 url 指定的文件中的音频。新对象的 preload 属性设置为 auto,其 src 属性设置为指定的 URL 或 null(如果未给出 URL)。如果指定了 URL,则浏览器在返回新对象之前开始异步加载媒体资源。

使用注意事项

您还可以使用其他元素创建方法(例如 document 对象的 createElement() 方法)来构造新的 HTMLAudioElement

确定何时可以开始播放

您可以通过三种方式判断何时加载了足够的音频文件以允许开始播放

  • 检查 readyState 属性的值。如果它为 HTMLMediaElement.HAVE_FUTURE_DATA,则有足够的数据可用于开始播放,至少可以播放一小段时间。如果它为 HTMLMediaElement.HAVE_ENOUGH_DATA,则有足够的数据,考虑到当前的下载速度,您应该能够将音频播放到结束而不会中断。
  • 监听 canplay 事件。当有足够的音频可用于开始播放时,它将发送到 <audio> 元素,但可能会发生中断。
  • 监听 canplaythrough 事件。当估计音频应该能够播放到结束而不会中断时,它将被发送。

基于事件的方法是最好的

**Audio()** 构造函数创建并返回一个新的 HTMLAudioElement,它可以附加到文档供用户交互和/或收听,或者可以在后台使用以管理和播放音频。
myAudioElement.addEventListener("canplaythrough", (event) => {
  /* the audio is now playable; play it if permissions allow */
  myAudioElement.play();
});

内存使用和管理

如果使用 Audio() 构造函数创建的音频元素的所有引用都被删除,如果当前正在进行播放,则 JavaScript 运行时的垃圾收集机制不会从内存中删除该元素本身。相反,音频将继续播放,并且该对象将保留在内存中,直到播放结束。在那时,该对象将成为垃圾收集的对象。

规范

规范
HTML 标准
# dom-audio-dev

浏览器兼容性

BCD 表格仅在浏览器中加载

另请参见