【发布时间】:2014-09-16 18:28:09
【问题描述】:
我有一个播放 mp3 的网页。我想创建每个 mp3 的可视化图表:音量与时间的关系,就像 Sound Cloud 所做的那样。我能想出的唯一想法是使用网络音频 api 解码 mp3,连接分析器节点,播放并记录不同时间的电平。肯定有更好的方法。有人知道是什么吗?
【问题讨论】:
标签: javascript audio mp3 web-audio-api
我有一个播放 mp3 的网页。我想创建每个 mp3 的可视化图表:音量与时间的关系,就像 Sound Cloud 所做的那样。我能想出的唯一想法是使用网络音频 api 解码 mp3,连接分析器节点,播放并记录不同时间的电平。肯定有更好的方法。有人知道是什么吗?
【问题讨论】:
标签: javascript audio mp3 web-audio-api
您可以在decodeAudioData 之后获取完整的AudioBuffer,然后以这种方式浏览示例(使用getChannelData())。样本将是从 -1 到 +1 的浮点数。
您真正需要做的就是将样本分组到n 长度的桶中,其中n 是AudioBuffer 的总长度除以要渲染波形的像素总数。然后只需找到每个桶中的最大绝对值,这些就是您要绘制的值。
不需要AnalyserNode,因此您可以非常快速地完成所有操作,而不必实时完成。
【讨论】: