AudioContext

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接口表示由链接在一起的音频模块构建的音频处理图,每个模块由一个AudioNode表示。音频上下文控制它包含的节点的创建和音频处理或解码的执行。在做任何其他操作之前,你需要创建一个AudioContext对象,因为所有事情都是在上下文中发生的。建议创建一个AudioContext对象并复用它,而不是每次初始化一个新的AudioContext对象,并且可以对多个不同的音频源和管道同时使用一个AudioContext对象。

EventTarget BaseAudioContext AudioContext

构造函数

AudioContext()

创建并返回一个新的 AudioContext 对象。

属性

也从其父接口继承属性,BaseAudioContext.

AudioContext.baseLatency 只读 实验性

返回AudioContext将音频从AudioDestinationNode传递到音频子系统的处理延迟的秒数。

AudioContext.outputLatency 只读 实验性

返回对当前音频上下文的预估输出延迟。

方法

也从其父接口继承方法 , BaseAudioContext.

AudioContext.close()

关闭一个音频环境,释放任何正在使用系统资源的音频。

AudioContext.createMediaElementSource()

创建一个MediaElementAudioSourceNode接口来关联HTMLMediaElement. 这可以用来播放和处理来自<video><audio> 元素的音频。

AudioContext.createMediaStreamSource()

创建一个MediaStreamAudioSourceNode接口来关联可能来自本地计算机麦克风或其他来源的音频流MediaStream

AudioContext.createMediaStreamDestination()

创建一个MediaStreamAudioDestinationNode接口来关联可能储存在本地或已发送至其他计算机的MediaStream音频。

AudioContext.createMediaStreamTrackSource()

创建一个MediaStreamTrackAudioSourceNode,它与一个MediaStream相关联,表示一个媒体流轨迹。

AudioContext.getOutputTimestamp()

返回一个新的 AudioTimestamp 对象,该对象包含两个与当前音频上下文相关的音频时间戳。

AudioContext.resume()

恢复之前被暂停的音频上下文中的时间进程。

AudioContext.suspend()

暂停音频上下文中的时间进程,暂停音频硬件访问并减少进程中的 CPU/电池使用。

例子

简单声明:

js
var audioCtx = new AudioContext();

跨浏览器的方式:

var AudioContext = window.AudioContext || window.webkitAudioContext;
var audioCtx = new AudioContext();

var oscillatorNode = audioCtx.createOscillator();
var gainNode = audioCtx.createGain();
var finish = audioCtx.destination;
// etc.

规范

Specification
Web Audio API
# AudioContext

浏览器兼容性

BCD tables only load in the browser

参见