javascript - 带 Canvas 的音频可视化工具

标签 javascript audio canvas visualizer

我正在根据我发现的一些不同的 codepen 实验构建一个音频可视化工具。我是 Canvas 新手,正在尝试找出如何使其运行得更顺利一些。到目前为止,它运行得很好:http://codepen.io/ericjacksonwood/pen/bBGEbM

这是可视化工具本身的结构:

function Visualizer() {
  canvasContext.clearRect(0, 0, canvas.width, canvas.height);
  analyser.getByteFrequencyData(frequencyData);

  var frequencyWidth = (canvas.width / bufferLength * 4),
    frequencyHeight = 0,
    x = 0;

  for (var increment = 0; increment < bufferLength; increment++) {
    frequencyHeight = frequencyData[increment] * (canvas.height * 0.002);

  canvasContext.fillStyle = "#0000FF";
  canvasContext.fillRect(x, canvas.height - frequencyHeight, frequencyWidth, frequencyHeight);
    x += frequencyWidth + 2;
  }

  call = requestAnimationFrame(Visualizer);
}

但是,我希望这些条在暂停时落到底部,而不只是让它们完全消失。这是我希望实现的功能的更好示例:http://codepen.io/ericjacksonwood/pen/xRmXEy

这个例子效果很好,但是我不需要彩虹条,所以我觉得大部分JS可以忽略。

最佳答案

由于您停止了动画,条形图完全消失了。只需暂停音频,让动画不渲染任何内容。 注释掉 cancelAnimationFrame(call); 你应该会看到你想要的。 我通过注释该行来测试您的代码,并体验您想要的内容。

关于javascript - 带 Canvas 的音频可视化工具,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41191794/

相关文章:

javascript - 使用 jQuery 选择器定位并替换包含 HTML 的字符串中的元素

jquery - 使用 Jquery 停止 HTML5 音频标签

node.js - WAV 格式的差异 (JS/NodeJS)

javascript - 用垂直装饰画一条线

javascript - 检查 Canvas 段的透明度

javascript - 通过 ng new 命令创建 Angular 新项目是用旧版本创建 package.json

javascript - Angular - 无法解析服务的所有参数(?)

java - 如何在不打开浏览器的情况下从提供的 URL 获取结果 [Php 代码/AJAX]

java - 绘制音频波形图 Java

javascript - 我如何测试浏览器将视频用作 Canvas 源的能力