BaseAudioContext
基线 广泛可用
此功能已建立良好,并在许多设备和浏览器版本上运行。它自 2021 年 4 月.
报告反馈
Web 音频 API 的 BaseAudioContext
接口充当在线和离线音频处理图的基准定义,分别由 AudioContext
和 OfflineAudioContext
表示。您不会直接使用 BaseAudioContext
- 您将通过这两个继承的接口之一使用其功能。
实例属性
BaseAudioContext
可以是事件的目标,因此它实现了EventTarget
接口。-
BaseAudioContext.audioWorklet
只读 安全上下文 - 返回
AudioWorklet
对象,可用于创建和管理AudioNode
,其中在后台运行实现AudioWorkletProcessor
接口的 JavaScript 代码以处理音频数据。 - 返回一个双精度浮点数,表示用于调度的不断增长的硬件时间(以秒为单位)。它从
0
开始。 - 返回一个
AudioDestinationNode
,表示上下文中所有音频的最终目的地。可以将其视为音频渲染设备。 - 返回
AudioListener
对象,用于 3D 空间化。 - 返回一个浮点数,表示此上下文中所有节点使用的采样率(以每秒采样次数为单位)。
AudioContext
的采样率无法更改。
实例方法
返回 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
的输出。 创建一个
ScriptProcessorNode
,可用于通过 JavaScript 进行直接音频处理。-
BaseAudioContext.createStereoPanner()
创建一个
StereoPannerNode
,可用于对音频源应用立体声声像处理。-
BaseAudioContext.createWaveShaper()
创建一个
WaveShaperNode
,用于实现非线性失真效果。-
BaseAudioContext.decodeAudioData()
事件
statechange
-
异步解码包含在
ArrayBuffer
中的音频文件数据。在这种情况下,ArrayBuffer
通常从XMLHttpRequest
的response
属性中加载,并在将responseType
设置为arraybuffer
后加载。此方法仅对完整文件有效,不适用于音频文件片段。
示例
AudioContext
的状态因调用其中一个状态更改方法 (AudioContext.suspend
、AudioContext.resume
或 AudioContext.close
) 而发生更改时触发。const audioContext = new AudioContext();
const oscillatorNode = audioContext.createOscillator();
const gainNode = audioContext.createGain();
const finish = audioContext.destination;
规范
js |
---|
Web 音频 API # BaseAudioContext |
浏览器兼容性
规范