AudioContext

Baseline 广泛可用 *

此特性已得到良好支持,可在多种设备和浏览器版本上使用。自 2021 年 4 月起,所有浏览器均已支持此特性。

* 此特性的某些部分可能存在不同级别的支持。

AudioContext 接口表示一个由链接在一起的音频模块构建的音频处理图,每个模块都由一个 AudioNode 表示。

音频上下文控制着它包含的节点的创建和音频处理或解码的执行。在进行任何其他操作之前,您需要创建一个 AudioContext,因为所有操作都发生在上下文中。建议创建一个 AudioContext 并重用它,而不是每次都初始化一个新的,并且可以使用单个 AudioContext 同时处理多个不同的音频源和管道。

EventTarget BaseAudioContext AudioContext

构造函数

AudioContext()

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

实例属性

还继承了其父接口 BaseAudioContext 的属性。

AudioContext.baseLatency 只读

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

AudioContext.outputLatency 只读

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

AudioContext.sinkId 只读 实验性 安全上下文

返回当前输出音频设备的接收器 ID。

实例方法

还继承了其父接口 BaseAudioContext 的方法。

AudioContext.close()

关闭音频上下文,释放它使用的任何系统音频资源。

AudioContext.createMediaElementSource()

创建一个与 HTMLMediaElement 关联的 MediaElementAudioSourceNode。这可以用来播放和操作来自 <video><audio> 元素的音频。

AudioContext.createMediaStreamSource()

创建一个与 MediaStream 关联的 MediaStreamAudioSourceNode,该流代表可能来自本地计算机麦克风或其他来源的音频流。

AudioContext.createMediaStreamDestination()

创建一个与 MediaStream 关联的 MediaStreamAudioDestinationNode,该流代表可以存储在本地文件或发送到另一台计算机的音频流。

AudioContext.createMediaStreamTrackSource()

创建一个与 MediaStream 关联的 MediaStreamTrackAudioSourceNode,该流代表一个媒体流轨道。

AudioContext.getOutputTimestamp()

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

AudioContext.resume()

恢复先前已暂停/停止的音频上下文的时间流逝。

AudioContext.setSinkId() 实验性 安全上下文

设置 AudioContext 的输出音频设备。

AudioContext.suspend()

暂停音频上下文的时间流逝,暂时停止音频硬件访问,并在此过程中减少 CPU/电池使用。

事件

sinkchange 实验性

当输出音频设备(因此,AudioContext.sinkId)发生更改时触发。

示例

基本音频上下文声明

js
const audioCtx = new AudioContext();

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

规范

规范
Web Audio API
# AudioContext

浏览器兼容性

另见