AudioContext.close()
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2021.
AudioContext
的close()
方法可以关闭 audio context,同时释放占用的所有系统资源。
关闭的 context 不能用来创建新节点,但可以解码音频数据,创建 buffer 等等
该函数不会自动释放所有用AudioContext 创建的对象
,除非其他引用也都已经解除了。但是,它会强制释放所有可能阻止其他AudioContexts 被创建或使用
的系统音频资源。挂起 audio context 中音频时间的进度,并停止对音频数据的处理。所有的 AudioContext 创建/阻塞资源都被释放后,返回的Promise
才会被释放。如果在一个OfflineAudioContext
上调用该方法,则会抛出INVALID_STATE_ERR
异常。
语法
js
var audioCtx = new AudioContext();
audioCtx.close().then(function() { ... });
返回值
一个 resolve void 值得 Promise
。
例子
下面这段代码是AudioContext states demo (直接运行) 中的,点击停止按钮调用close()
。promise 释放后,回到初始状态。
js
stopBtn.onclick = function () {
audioCtx.close().then(function () {
startBtn.removeAttribute("disabled");
susresBtn.setAttribute("disabled", "disabled");
stopBtn.setAttribute("disabled", "disabled");
});
};
规范
Specification |
---|
Web Audio API # dom-audiocontext-close |
浏览器兼容性
BCD tables only load in the browser