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

最佳答案

您可以在AudioBuffer之后抓取完整的decodeAudioData,然后以这种方式浏览示例(使用getChannelData())。样本将是从-1到+1的浮点数。

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

不需要AnalyserNode,因此您可以真正快速地完成所有操作,而不必实时进行。

关于javascript - 如何使用javascript在特定的播放点获取mp3的音量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25875972/

10-11 22:43
查看更多