BaseAudioContext

基线 广泛可用

此功能已建立良好,并在许多设备和浏览器版本上运行。它自 2021 年 4 月.

报告反馈

Web 音频 APIBaseAudioContext 接口充当在线和离线音频处理图的基准定义,分别由 AudioContextOfflineAudioContext 表示。您不会直接使用 BaseAudioContext - 您将通过这两个继承的接口之一使用其功能。

EventTarget BaseAudioContext

实例属性

BaseAudioContext 可以是事件的目标,因此它实现了 EventTarget 接口。

BaseAudioContext.audioWorklet 只读 安全上下文

返回 AudioWorklet 对象,可用于创建和管理 AudioNode,其中在后台运行实现 AudioWorkletProcessor 接口的 JavaScript 代码以处理音频数据。

BaseAudioContext.currentTime 只读

返回一个双精度浮点数,表示用于调度的不断增长的硬件时间(以秒为单位)。它从 0 开始。

BaseAudioContext.destination 只读

返回一个 AudioDestinationNode,表示上下文中所有音频的最终目的地。可以将其视为音频渲染设备。

BaseAudioContext.listener 只读

返回 AudioListener 对象,用于 3D 空间化。

BaseAudioContext.sampleRate 只读

返回一个浮点数,表示此上下文中所有节点使用的采样率(以每秒采样次数为单位)。AudioContext 的采样率无法更改。

BaseAudioContext.state 只读

实例方法

返回 AudioContext 的当前状态。

还实现了来自接口 EventTarget 的方法。

BaseAudioContext.createAnalyser()

创建一个 AnalyserNode,可用于公开音频时间和频率数据,例如创建数据可视化。

BaseAudioContext.createBiquadFilter()

创建一个 BiquadFilterNode,它表示一个二阶滤波器,可以配置为几种不同的常见滤波器类型:高通、低通、带通等。

BaseAudioContext.createBuffer()

创建一个新的空 AudioBuffer 对象,然后可以通过数据填充它,并通过 AudioBufferSourceNode 播放。

BaseAudioContext.createBufferSource()

创建一个 AudioBufferSourceNode,可用于播放和操作包含在 AudioBuffer 对象中的音频数据。 AudioBuffer 使用 AudioContext.createBuffer() 创建,或者在 AudioContext.decodeAudioData() 成功解码音频轨迹时返回。

BaseAudioContext.createConstantSource()

创建一个 ConstantSourceNode 对象,它是一个音频源,持续输出单声道(单声道)声音信号,其所有样本的值都相同。

BaseAudioContext.createChannelMerger()

创建一个 ChannelMergerNode,用于将多个音频流的通道合并成一个音频流。

BaseAudioContext.createChannelSplitter()

创建一个 ChannelSplitterNode,用于访问音频流的各个通道并单独处理它们。

BaseAudioContext.createConvolver()

创建一个 ConvolverNode,可用于对音频图应用卷积效果,例如混响效果。

BaseAudioContext.createDelay()

创建一个 DelayNode,用于将传入的音频信号延迟一定时间。此节点也有助于在 Web 音频 API 图中创建反馈循环。

BaseAudioContext.createDynamicsCompressor()

创建一个 DynamicsCompressorNode,可用于对音频信号应用声学压缩。

BaseAudioContext.createGain()

创建一个 GainNode,可用于控制音频图的总体音量。

BaseAudioContext.createIIRFilter()

创建一个 IIRFilterNode,它表示一个二阶滤波器,可以配置为几种不同的常见滤波器类型。

BaseAudioContext.createOscillator()

创建一个 OscillatorNode,一个表示周期性波形的源。它基本上产生一个音调。

BaseAudioContext.createPanner()

创建一个 PannerNode,用于在 3D 空间中空间化传入的音频流。

BaseAudioContext.createPeriodicWave()

创建一个 PeriodicWave,用于定义一个周期性波形,可用于确定 OscillatorNode 的输出。

BaseAudioContext.createScriptProcessor() 已弃用

创建一个 ScriptProcessorNode,可用于通过 JavaScript 进行直接音频处理。

BaseAudioContext.createStereoPanner()

创建一个 StereoPannerNode,可用于对音频源应用立体声声像处理。

BaseAudioContext.createWaveShaper()

创建一个 WaveShaperNode,用于实现非线性失真效果。

BaseAudioContext.decodeAudioData()

事件

statechange

异步解码包含在 ArrayBuffer 中的音频文件数据。在这种情况下,ArrayBuffer 通常从 XMLHttpRequestresponse 属性中加载,并在将 responseType 设置为 arraybuffer 后加载。此方法仅对完整文件有效,不适用于音频文件片段。

示例

AudioContext 的状态因调用其中一个状态更改方法 (AudioContext.suspendAudioContext.resumeAudioContext.close) 而发生更改时触发。
const audioContext = new AudioContext();

const oscillatorNode = audioContext.createOscillator();
const gainNode = audioContext.createGain();
const finish = audioContext.destination;

规范

js
Web 音频 API
# BaseAudioContext

浏览器兼容性

规范

另请参阅