javascript - 用js获取mp3文件频率数据

标签 javascript audio browser html5-audio

有没有办法在播放之前获取 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/

相关文章:

javascript - 如何自定义网络通知?

javascript - 为内部 html 创建具有 id 属性但 id 仍在外部 html 上的 angularjs 指令

c++ - 如何从 Chromium 运行测试代码

c++ - 启动浏览器的 Posixy 方式?

javascript - 如何使用 Cypress 获取比 'Webpack Compilation Error' 更详细的信息?

javascript - 优化结果页优先查询结果条数

audio - 使用 SOX 将 .L 和 .R 文件批量混合成立体声文件

iOS:拍照时启用快门音

javascript - 如何使用 Crossrider appAPI.openURL 以 "Maximized"模式在窗口中打开 URL?

firefox - 由 Gecko 提供支持的浏览器和由 Webkit 提供支持的浏览器之间的基本区别是什么?