如何使用javascript获取特定播放点的mp3音量

lae*_*des 2 javascript audio mp3 web-audio-api

我有一个播放 mp3 的网页。我想为每个 mp3 创建一个可视化图表:音量级别与时间的关系,就像 Sound Cloud 所做的那样。我能想到的唯一想法是使用网络音频 API 解码 mp3,连接分析器节点,播放它并记录不同时间的电平。当然有更好的方法。有谁知道它是什么?

Kev*_*nis 5

您可以获取完整的AudioBuffer内容decodeAudioData,然后以这种方式浏览示例(使用getChannelData())。样本将从 -1 到 +1 浮动。

您真正需要做的就是将样本分组到n长度的桶中,其中n是总长度除以AudioBuffer要将波形渲染到的像素总数。然后只需找到每个桶中的最大绝对值,这些就是您将绘制的值。

不需AnalyserNode要这样做,所以您可以非常快速地完成这一切,而不必实时完成。