AudioParam

基线 广泛可用

此功能非常成熟,并在许多设备和浏览器版本上运行。它自 2021 年 4 月.

报告反馈

Web Audio API 的 AudioParam 接口表示一个与音频相关的参数,通常是 AudioNode(例如 GainNode.gain)的参数。

可以将 AudioParam 设置为特定值或值变化,并可以计划在特定时间并遵循特定模式发生。

AudioParam 类型

每个 AudioParam 都有一系列事件,最初为空,这些事件定义了值何时以及如何变化。当此列表不为空时,使用 AudioParam.value 属性进行的更改将被忽略。此事件列表使我们能够使用任意基于时间线的自动化曲线来计划必须在非常精确的时间发生的变化。使用的时间是 AudioContext.currentTime 中定义的时间。

有两种 AudioParama 速率k 速率 参数。每个 AudioNode 在规范中定义了其哪些参数是 a 速率k 速率

a 速率

a 速率 AudioParam 为音频信号的每个 样本帧 获取当前音频参数值。

k 速率

实例属性

k 速率 AudioParam 对处理的整个块使用相同的初始音频参数值;也就是说,128 个样本帧。换句话说,相同的值适用于音频在节点处理时中的每个帧。

AudioParam.defaultValue 只读

表示创建 AudioParam 的特定 AudioNode 定义的属性的初始值。

AudioParam.maxValue 只读

表示参数的标称(有效)范围的可能最大值。

AudioParam.minValue 只读

表示参数的标称(有效)范围的可能最小值。

AudioParam.value

实例方法

示例

取消对 AudioParam 的所有计划的未来更改,但在给定的时间将其值保持住,直到使用其他方法进行进一步更改。

首先,一个基本示例显示一个 GainNode,其 gain 值已设置。gaina 速率 AudioParam 的一个示例,因为该值可以为音频的每个样本帧设置不同的值。
const audioCtx = new AudioContext();

const gainNode = audioCtx.createGain();
gainNode.gain.value = 0;

js

首先,一个基本示例显示一个 GainNode,其 gain 值已设置。gaina 速率 AudioParam 的一个示例,因为该值可以为音频的每个样本帧设置不同的值。
const compressor = audioCtx.createDynamicsCompressor();
compressor.threshold.setValueAtTime(-50, audioCtx.currentTime);
compressor.knee.setValueAtTime(40, audioCtx.currentTime);
compressor.ratio.setValueAtTime(12, audioCtx.currentTime);
compressor.attack.setValueAtTime(0, audioCtx.currentTime);
compressor.release.setValueAtTime(0.25, audioCtx.currentTime);

规范

接下来,一个示例显示一个 DynamicsCompressorNode,其某些参数值被操作。这些是 k 速率 AudioParam 类型的示例,因为这些值一次设置整个音频块。
Web Audio API
# AudioParam

浏览器兼容性

规范

另请参阅