AudioContext
AudioContext
接口表示一个由音频模块构建的音频处理图,这些音频模块通过链接连接在一起,每个模块都由一个 AudioNode
表示。
音频上下文控制其包含的节点的创建以及音频处理或解码的执行。在执行任何其他操作之前,您需要创建一个 AudioContext
,因为所有操作都发生在上下文中。建议创建一个 AudioContext 并重复使用它,而不是每次都初始化一个新的,并且可以使用单个 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
)发生更改时触发。
示例
基本的音频上下文声明
const audioCtx = new AudioContext();
const oscillatorNode = audioCtx.createOscillator();
const gainNode = audioCtx.createGain();
const finish = audioCtx.destination;
// etc.
规范
规范 |
---|
Web Audio API # AudioContext |
浏览器兼容性
BCD 表格仅在启用 JavaScript 的浏览器中加载。