diff --git a/files/zh-cn/web/api/audioparam/index.md b/files/zh-cn/web/api/audioparam/index.md index b67cb344198071..34fb66acc5ace9 100644 --- a/files/zh-cn/web/api/audioparam/index.md +++ b/files/zh-cn/web/api/audioparam/index.md @@ -5,75 +5,75 @@ slug: Web/API/AudioParam {{APIRef("Web Audio API")}} -`AudioParam` 接口代表音频相关的参数,通常是一个 {{domxref("AudioNode")}} (例如 {{ domxref("GainNode.gain") }}) 的参数。一个 `AudioParam` 可以被设置为一个具体的值或者数值的改变,可以被安排在在一个具体的时刻并且遵循一个特定的模式发生。 +Web Audio API 的 `AudioParam` 接口代表音频相关的参数,通常是 {{domxref("AudioNode")}}(例如 {{ domxref("GainNode.gain") }})的参数。 -下面有两种类型的 `AudioParam`, _a-rate_ 和 _k-rate_ 参数: +`AudioParam` 可以用于安排在特定时间并遵循特定模式设置一个具体的值或者数值的变化过程。 -- 一个 _a-rate_ `AudioParam` 获取音频信号的每个[采样帧](/zh-CN/docs/Web/API/Web_Audio_API/Basic_concepts_behind_Web_Audio_API#Audio_buffers.3A_frames.2C_samples_and_channels)的当前音频参数值。 -- 一个 _k-rate_ `AudioParam` 对于待处理的整个块使用相同的初始音频参数值,即 128 个采样帧。 +每个 `AudioParam` 都有一个初始化为空的事件列表,用于定义值在何时发生的具体变化。当该列表不为空时,将忽略使用 `AudioParam.value` 属性进行的更改。该事件列表使我们能够使用任意基于时间线的自动化曲线来安排必须在非常精确的时间发生的更改。使用的时间定义于 {{domxref("BaseAudioContext/currentTime", "AudioContext.currentTime")}} 中。 -每个 {{domxref("AudioNode")}} 定义了其规格中哪一个参数是 _a-rate_ 或 _k-rate_。 +## AudioParam 类型 -每个 `AudioParam` 有一个事件的列表,初始化时列表为空。该列表定义了什么时候数值怎么改变。当这个列表不是空的时候,使用 `AudioParam.value` 属性的改变会被忽略。事件的列表允许我们去有计划地进行必须在非常精确的时间发生的更改,使用任意的基于时间轴的自动化曲线。被使用的时间在{{domxref("AudioContext.currentTime")}} 中被定义。 +有两种类型的 `AudioParam`:_a-rate_ 和 _k-rate_ 参数。规范中为每个 {{domxref("AudioNode")}} 都定义了其参数为 _a-rate_ 还是 _k-rate_。 -## 属性 +### a-rate -`AudioParam` _继承的属性来自于它的父类,_ `AudioNode`。 +_a-rate_ `AudioParam` 获取音频信号的每个[采样帧](/zh-CN/docs/Web/API/Web_Audio_API/Basic_concepts_behind_Web_Audio_API#音频片段:帧、样本和声道)的当前音频参数值。 -- {{domxref("AudioParam.defaultValue")}} {{readonlyInline}} - - : 代表被具体的{{domxref("AudioNode")}} 创建的 `AudioParam` 的属性的初始的音量。 -- {{domxref("AudioParam.maxValue")}} {{readonlyInline}} +### k-rate + +_k-rate_ `AudioParam` 对待处理的整个块使用相同的初始音频参数值,即 128 个采样帧。换句话说,其将相同的值应用于节点处理的音频中的每一帧。 + +## 实例属性 + +- {{domxref("AudioParam.defaultValue")}} {{ReadOnlyInline}} + - : 代表被具体的 {{domxref("AudioNode")}} 创建的 `AudioParam` 的属性的初始值。 +- {{domxref("AudioParam.maxValue")}} {{ReadOnlyInline}} - : 代表参数有效范围的最大可能值。 -- {{domxref("AudioParam.minValue")}} {{readonlyinline}} +- {{domxref("AudioParam.minValue")}} {{ReadOnlyInline}} - : 代表参数有效范围的最小可能值。 - {{domxref("AudioParam.value")}} - - : 代表参数的浮点数音量值;初始化设定为 `AudioParam.defaultValue 的值。虽然它可以被设置,但是任何发生在自动化事件(事件被计划用于 AudioParam)的修改会被忽略,`没有任何例外。 + - : 代表参数的当前浮点数音量值;初始化设定为 {{domxref("AudioParam.defaultValue", "defaultValue")}} 的值。 -## 方法 - -AudioParam _初始化的方法来自它的父类,_`AudioNode`. +## 实例方法 - {{domxref("AudioParam.setValueAtTime()")}} - - : 在一个确切的时间,即时更改 `AudioParam` 的值,按照{{domxref("AudioContext.currentTime")}} 的时间。新的值会被传递到 `value` 参数。 + - : 参照 {{domxref("AudioContext.currentTime")}},安排在一个确切的时间,立即更改 `AudioParam` 的值。新的值由 `value` 参数给定。 - {{domxref("AudioParam.linearRampToValueAtTime()")}} - - : 调整 `AudioParam` 的值,使其逐渐按线性变化。这个改变会从上一个事件指定的事件开始,跟随一个线性“斜坡”到参数给的新值,并在 `endTime` 参数给定的时间到达新值。 + - : 调整 `AudioParam` 的值,使其逐渐按线性变化。这个变化会从*上一个*事件指定的事件开始,跟随一个线性变化到参数给定的新值,并在 `endTime` 参数给定的时间到达新值。 - {{domxref("AudioParam.exponentialRampToValueAtTime()")}} - - : 调整 `AudioParam` 的值,使其逐渐按指数变化。这个改变会从上一个事件指定的事件开始,跟随一个指数“斜坡”到参数给的新值,并在 `endTime` 参数给定的时间到达新值。 + - : 调整 `AudioParam` 的值,使其逐渐按指数变化。这个变化会从*上一个*事件指定的事件开始,跟随一个指数变化到参数给定的新值,并在 `endTime` 参数给定的时间到达新值。 - {{domxref("AudioParam.setTargetAtTime()")}} - - : 将开始计划改变 `AudioParam` 的值。这个改变将从 `startTime` 指定的时间开始,并且以指定的方式向目标参数给定的值改变。指数衰减速率由 `timeConstant` 参数定义,`time` 参数使以秒作为测量单位的时间。 + - : 安排逐渐改变 `AudioParam` 的值的开始时间。这个变化将从 `startTime` 指定的时间开始,并且以指定的方式向目标参数给定的值改变。指数衰减速率由 `timeConstant` 参数定义,以秒为单位。 - {{domxref("AudioParam.setValueCurveAtTime()")}} - - : 调整 `AudioParam` 的值以跟随一组定义为 {{domxref("Float32Array")}} 的值,数值会缩放到适应给定的间隔,从 `startTime` 时间开始并具有特定的持续时间(duration)。 + - : 调整 `AudioParam` 的值以跟随一组缩放到适应给定间隔的浮点数值,该间隔从给定的起始时间开始,持续一段给定的时长。 - {{domxref("AudioParam.cancelScheduledValues()")}} - - : 取消全部在 `AudioParam` 中的未来计划发生的改变。 + - : 取消所有安排的对 `AudioParam` 的未来的改变。 - {{domxref("AudioParam.cancelAndHoldAtTime()")}} - - : 取消全部计划将来对 `AudioParam` 的改变,但是保持给定时间的值,直到将来的使用其他方法产生改变。新的值会被赋予到 `value` 属性中。 + - : 取消所有安排的对 `AudioParam` 的未来的改变,但是保持给定时间的值,直到将来的使用其他方法产生改变。 -## 例子 +## 示例 -首先,一个基础的例子展示了 {{domxref("GainNode")}} 拥有的 `gain` 一些值合。`gain` 是一个 a-rate AudioParam 的例子,因为该值可以针对音频的每个样本帧进行不同的设置。 +首先,基础示例展示了如何设置 {{domxref("GainNode")}} 的 `gain` 值。`gain` 是 _a-rate_ `AudioParam` 的一个示例,因为该值可以针对音频的每个样本帧进行不同的设置。 ```js -var AudioContext = window.AudioContext || window.webkitAudioContext; -var audioCtx = new AudioContext(); +const audioCtx = new AudioContext(); -var gainNode = audioCtx.createGain(); +const gainNode = audioCtx.createGain(); gainNode.gain.value = 0; ``` -另外,一个例子展示了 {{ domxref("BiquadFilterNode") }} 拥有的一些值。这是一个 k-rate AudioParam 的例子,因为一次为整个音频块设置的值。 +下一个示例展示了如何修改 {{ domxref("DynamicsCompressorNode") }} 的一些参数值。这是 _k-rate_ `AudioParam` 的一个示例,因为它是一次可以为整个音频块设置的值。 ```js -var AudioContext = window.AudioContext || window.webkitAudioContext; -var audioCtx = new AudioContext(); - -var biquadFilter = audioCtx.createBiquadFilter(); - -biquadFilter.type = "lowshelf"; -biquadFilter.frequency.value = 1000; -biquadFilter.gain.value = 25; +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); ``` -## 标准 +## 规范 {{Specifications}} @@ -81,6 +81,6 @@ biquadFilter.gain.value = 25; {{Compat}} -## See also +## 参见 -- [Using the Web Audio API](/zh-CN/docs/Web_Audio_API/Using_Web_Audio_API) +- [使用 Web Audio API](/zh-CN/docs/Web/API/Web_Audio_API/Using_Web_Audio_API) diff --git a/files/zh-cn/web/api/web_audio_api/basic_concepts_behind_web_audio_api/index.md b/files/zh-cn/web/api/web_audio_api/basic_concepts_behind_web_audio_api/index.md index 2e086a78dd4803..da1c9da5b79427 100644 --- a/files/zh-cn/web/api/web_audio_api/basic_concepts_behind_web_audio_api/index.md +++ b/files/zh-cn/web/api/web_audio_api/basic_concepts_behind_web_audio_api/index.md @@ -36,7 +36,7 @@ slug: Web/API/Web_Audio_API/Basic_concepts_behind_Web_Audio_API 更多的细节可以查看维基百科的[采样](http://wikipedia.org/wiki/Sampling_%28signal_processing%29)页面。 -## 音频片段:帧,样本和声道 +## 音频片段:帧、样本和声道 一个 音频片段 ({{ domxref("AudioBuffer") }}) 会包含几个组成参数:一个或几个声道(1 代表*单声道*,2 代表*立体声*等等),一个长度(代表片段中采样帧的数目)和一个采样率(是每秒钟采样帧的个数)。