我有一个播放mp3的网页。我想为每个mp3创建一个可视化图形:音量大小与时间的关系,就像Sound Cloud一样。我唯一能想到的想法是使用Web音频api解码mp3,连接分析器节点,播放并记录不同时间的电平。当然有更好的方法。有谁知道它是什么?
最佳答案
您可以在AudioBuffer
之后抓取完整的decodeAudioData
,然后以这种方式浏览示例(使用getChannelData()
)。样本将是从-1到+1的浮点数。
您真正要做的就是将样本分组到n
长度的存储桶中,其中n
是AudioBuffer
的总长度除以要将波形渲染到其中的像素总数。然后只需在每个存储桶中找到最大绝对值,这些就是您要绘制的值。
不需要AnalyserNode
,因此您可以真正快速地完成所有操作,而不必实时进行。
关于javascript - 如何使用javascript在特定的播放点获取mp3的音量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25875972/