我有一个播放mp3的网页。我想创建一个每个mp3的视觉图表:音量水平与时间一样,如Sound Cloud。我能想到的唯一想法是用网络音频api解码mp3,连接分析器节点,播放它并在不同时间记录电平。当然有更好的方法。有谁知道它是什么?
答案 0 :(得分:4)
您可以在AudioBuffer
之后获取完整的decodeAudioData
,然后只使用getChannelData()
这样的样本。样本将从-1到+1浮动。
您真正需要做的就是将样本分组为n
长度的存储分区,其中n
是AudioBuffer
的总长度除以您想要的总像素数渲染波形。然后只需找到每个桶中的最大绝对值,这些值就是您要绘制的值。
不需要AnalyserNode
,所以你可以非常快速地完成所有工作而不必实时完成。