有没有办法在播放之前获取 mp3 数据(其频率)?请注意,我不必全部了解 - 如果我能得到它就足以给我“进入 future ”(尚未播放的帧)5 秒的帧数据。 我还需要它是客户端/浏览器端,而不是服务器端。 有办法做到这一点吗?
最佳答案
您不必将音频数据从 WebAudioAPI 流式传输到输出源。 这是他们通常在教程中使用的节点网络:
context = new AudioContext();
src = context.createMediaElementSource(source);
analyser = context.createAnalyser();
var listen = context.createGain();
src.connect(listen);
listen.connect(analyser);
analyser.connect(context.destination);
如果你断开context.destination,你应该得到数据,但是被静音了。对于这样的代码:
context = new AudioContext();
src = context.createMediaElementSource(source);
analyser = context.createAnalyser();
var listen = context.createGain();
src.connect(listen);
listen.connect(analyser);
然后您可以在两个相同的音频文件上运行此代码,每个文件具有不同的时间戳,并保存无声文件的数据。
关于javascript - 用js获取mp3文件频率数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66514907/