AudioContext

基线 广泛可用

此功能已得到很好的确立,并且可在许多设备和浏览器版本上运行。自以下时间起,它已在所有浏览器中可用: 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,该 MediaStream 表示音频流,该流可能来自本地计算机麦克风或其他来源。

AudioContext.createMediaStreamDestination()

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

AudioContext.createMediaStreamTrackSource()

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

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

浏览器兼容性

BCD 表格仅在启用 JavaScript 的浏览器中加载。

另请参阅