html怎么定义音乐参数,AudioParam - 表示与音频相关的参数
发布日期:2021-06-24 13:54:43 浏览次数:2 分类:技术文章

本文共 3014 字,大约阅读时间需要 10 分钟。

AudioParam 是 Web Audio API 的接口,表示与音频相关的参数,通常是 AudioNode 的参数(例如 GainNode.gain)。AudioParam 可以被设置为特定的值或值的变化,并且可以将其安排为在特定时间按照特定模式发生。

有两种 AudioParam,a-rate 和 k-rate 参数:

a-rate 的 AudioParam 会获取音频信号的每个样本帧的当前音频参数值。

k-rate 的 AudioParam 在整个处理的块中使用相同的初始音频参数值,即 128 个样本帧。换句话说,当节点处理音频时,音频中的每个帧都应用相同的值。

每个 AudioNode 在规范中定义了它的参数是 a-rate 还是 k-rate。

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

属性

表示由创建 AudioParam 的特定 AudioNode 定义的属性的初始音量。

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

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

表示截至当前时间的参数当前值;最初设置为 defaultValue 的值。

方法

根据 AudioContext.currentTime 测得的准确时间,将即时更改安排在精确时间更改为 AudioParam 的值。新值由 value 参数给定。

安排 AudioParam 的值逐渐线性变化。更改从为 previous 事件指定的时间开始,然后线性增加到 value 参数中给定的新值,并在 endTime 参数中给定的时间达到新值。

安排 AudioParam 的值的逐渐指数变化。更改从为 previous 事件指定的时间开始,然后按照指数递增到 value 参数中给定的新值,并在 endTime 参数中给定的时间达到新值。

将更改的开始时间安排为 AudioParam 的值。更改从 startTime 中指定的时间开始,并以指数形式移向 target 参数给定的值。指数衰减率由 timeConstant 参数定义,该时间以秒为单位。

安排 AudioParam 的值遵循一组值,这些值是由一个浮点数数组定义的,该数组按比例缩放以适合给定的间隔,从给定的开始时间开始,跨越给定的持续时间。

取消 AudioParam 未来所有计划的更改。

取消对 AudioParam 的所有计划的未来更改,但在使用其他方法进行进一步更改之前,保留其值。

实例

下面的实例显示了 GainNode 的 gain 值集。gain 是一个 a-rate AudioParam 的例子,因为可能会为音频的每个样本帧设置不同的值。

var AudioContext = window.AudioContext || window.webkitAudioContext;

var audioCtx = new AudioContext();

var gainNode = audioCtx.createGain();

gainNode.gain.value = 0;

下面的实例显示了一个 DynamicsCompressorNode,它具有一些参数值。它们是 k-rate AudioParam 的例子,因为会立即为整个音频块设置值。

var 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);

规范

桌面浏览器兼容性

特性ChromeEdgeFirefoxInternet ExplorerOperaSafari基础支持14≤1825不支持156

automationRate68≤79未知不支持支持未知

cancelAndHoldAtTime57

支持 — 56≤79不支持不支持44

支持 — 43不支持

cancelScheduledValues141225不支持156

defaultValue141225不支持156

exponentialRampToValueAtTime141225不支持156

linearRampToValueAtTime141225不支持156

maxValue52≤1853不支持396

minValue52≤1853不支持396

setTargetAtTime141225不支持156

setValueAtTime141225不支持156

setValueCurveAtTime141225不支持156

value141225不支持156

移动浏览器兼容性

特性AndroidChrome for AndroidEdge mobileFirefox for AndroidIE mobileOpera AndroidiOS Safari基础支持支持18未知26未知14支持

automationRate6868未知未知未知支持支持

cancelAndHoldAtTime57

支持 — 5657

支持 — 56未知不支持未知43

支持 — 43不支持

cancelScheduledValues支持18未知26未知14支持

defaultValue支持18未知26未知14支持

exponentialRampToValueAtTime支持18未知26未知14支持

linearRampToValueAtTime支持18未知26未知14未知

maxValue5252未知53未知41支持

minValue5252未知53未知41支持

setTargetAtTime支持18未知26未知14支持

setValueAtTime支持18未知26未知14支持

setValueCurveAtTime支持18未知26未知14支持

value支持18未知26未知14支持

1. 通过 cancelValuesAndHoldAtTime() 支持。

2. 这将在指定时间设置目标音量,但不会达到目标音量,导致此函数的行为类似于 setValueAtTime()。

4. 在 Firefox 69 之前, value 未考虑对参数值的计划或渐进更改;而是仅返回显式设置的值。

5. Android 版 Firefox 当前未考虑对参数值的计划或渐进更改;仅返回初始值或最新的显式设置值。

转载地址:https://blog.csdn.net/weixin_33272631/article/details/117814904 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:html空间图片,html+js实现图片预览
下一篇:android控件缩放后居中,三大布局的基本摆放属性总结,以及imageVIew图片摆放的缩放问题...

发表评论

最新留言

路过,博主的博客真漂亮。。
[***.116.15.85]2024年04月17日 10时09分02秒