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

Posted

技术标签:

【中文标题】如何使用javascript在特定播放点获取mp3的音量【英文标题】:how to get volume level of mp3 at specific point of playback using javascript 【发布时间】:2014-09-16 18:28:09 【问题描述】:

我有一个播放 mp3 的网页。我想创建每个 mp3 的可视化图表:音量与时间的关系,就像 Sound Cloud 所做的那样。我能想出的唯一想法是使用网络音频 api 解码 mp3,连接分析器节点,播放并记录不同时间的电平。肯定有更好的方法。有人知道是什么吗?

【问题讨论】:

【参考方案1】:

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

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

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

【讨论】:

没问题。如果您遇到任何麻烦,请告诉我。

以上是关于如何使用javascript在特定播放点获取mp3的音量的主要内容,如果未能解决你的问题,请参考以下文章

通过获取 .attr 使用 JavaScript/jquery 播放/暂停音频文件

如何跟踪文件下载

如何在没有任何 html5 功能的情况下通过 javascript 播放 mp3 文件?

在 JavaScript 中播放一段声音时如何获取回调?

Discord bot:如何在语音频道中播放 mp3 文件

如何在 Cocos2d 中播放音频文件的特定部分