AudioContext.close()

AudioContextclose()方法可以关闭audio context,同时释放占用的所有系统资源。

关闭的context不能用来创建新节点,但可以解码音频数据,创建buffer等等

该函数不会自动释放所有用AudioContext创建的对象,除非其他引用也都已经解除了。但是,它会强制释放所有可能阻止其它AudioContexts被创建或使用的系统音频资源。挂起audio context中音频时间的进度,并停止对音频数据的处理。所有的AudioContext创建/阻塞资源都被释放后,返回的Promise才会被释放。如果在一个OfflineAudioContext上调用该方法,则会抛出INVALID_STATE_ERR 异常。

语法

var audioCtx = new AudioContext();
audioCtx.close().then(function() { ... });

返回值

一个 resolve  void值得 Promise。 

例子

下面这段代码是AudioContext states demo (直接运行)中的,点击停止按钮调用close()。promise释放后,回到初始状态。

stopBtn.onclick = function() {
  audioCtx.close().then(function() {
    startBtn.removeAttribute('disabled');
    susresBtn.setAttribute('disabled','disabled');
    stopBtn.setAttribute('disabled','disabled');
  });
}

规范

规范 状态 注释
Web Audio API
close()
Working Draft  

浏览器兼容性

We're converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven't yet converted the data it contains. Find out how you can help!

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
Basic support 43.0 40.0 (40.0) 未实现 ? ?
Feature Android Android Webview Firefox Mobile (Gecko) Firefox OS IE Mobile Opera Mobile Safari Mobile Chrome for Android
Basic support 未实现 未实现 ? ? ? ? ? 未实现

另见

文档标签和贡献者

此页面的贡献者: yqjiang, ayqy
最后编辑者: yqjiang,