javascript - 使用 console.log() 在 html5 音频 api 和 javascript 中记录音频幅度

标签 javascript html audio

如果您查看此 jsbin,您会发现圆圈根据音频波长振幅的最高点进行跳动和脉冲。

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

我试图将这个音频幅度记录到控制台,但它很困惑。你使用console.log(buffer)吗?控制台.log(放大器)?或者其他东西一起?另外,您在哪里输入该行。

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

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

感谢您的帮助!这是一个新的 API,因此在 Google 上不容易找到这些问题。

最佳答案

<强>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];

关于javascript - 使用 console.log() 在 html5 音频 api 和 javascript 中记录音频幅度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19612534/

相关文章:

javascript - 获取 regex .replace() 出现的次数

javascript - 使用一个链接 Javascript 切换多个 div

html - 移动媒体查询被桌面值覆盖?

javascript - 使用SoundManager2时onfinish会提前触发

javascript - 隐藏 ExtJS 面板标题

javascript - 在使用 grunt usemin 和 rev 时使用 SourceMaps Uglify

javascript - AngularJS 指令是否使用输出参数?

javascript - Jquery 创建一个将用于输入验证的函数

c# - 输出到文件和流时,Microsoft SpeechSynthesizer发出裂纹

php - 音频流中需要帮助