1

如果您查看此 jsbin,您会注意到圆圈根据音频波长幅度的最高点跳动和脉冲。

http://jsbin.com/ovesiv/4/edit

我正在尝试将此音频幅度记录到控制台,但这很令人困惑。你使用 console.log(buffer) 吗?控制台日志(放大器)?还是别的什么都在一起?另外,您在哪里键入该行。

我的最终目标是拥有一个有 5 种不同颜色的小部件。一种颜色表示非常低(几乎无声),一种颜色表示低,一种前中,一种表示高,一种表示非常高。

那么,如果我要编写一个 if 语句来改变这 5 个幅度级别的圆圈颜色,我会怎么做呢?

谢谢你的帮助!这是一个新的 api,所以这些问题在谷歌上并不容易找到。

4

1 回答 1

0

1. 记录

就放在console.log(amp);前面circle.setAttribute(...)

2. 颜色

创建一个查找表(外部processAudio):

var colorLUT = [
        "rgb(255,   0,   0)", // Very low
        "rgb(255, 255,   0)", // Low
        "rgb(  0, 255,   0)", // Medium
        "rgb(  0, 255, 255)", // High
        "rgb(  0,   0, 255)"  // Very high
    ];

...并根据当前幅度选择颜色:

var color = 
    amp < 0.2 ? colorLUT[0] :
    amp < 0.4 ? colorLUT[1] :
    amp < 0.6 ? colorLUT[2] :
    amp < 0.8 ? colorLUT[3] :
                colorLUT[4];
于 2013-10-26T23:35:51.437 回答