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

时间:2014-09-16 18:28:10

标签: javascript audio mp3 web-audio

我有一个播放mp3的网页。我想创建一个每个mp3的视觉图表:音量水平与时间一样,如Sound Cloud。我能想到的唯一想法是用网络音频api解码mp3,连接分析器节点,播放它并在不同时间记录电平。当然有更好的方法。有谁知道它是什么?

1 个答案:

答案 0 :(得分:4)

您可以在AudioBuffer之后获取完整的decodeAudioData,然后只使用getChannelData()这样的样本。样本将从-1到+1浮动。

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

不需要AnalyserNode,所以你可以非常快速地完成所有工作而不必实时完成。