使用Web audio API立即从音频文件中获取频率数据

Get frequency data from audio file immediately using the Web Audio API?

本文关键字:文件 获取 频率 数据 音频 audio Web API 使用      更新时间:2023-09-26

我试图获得音频文件的频率数据,而不必通过整个实际音频文件播放。现在我正在做下面的事情:

var audio = new Audio();
audio.src = 'testAudio.mp3';
audio.controls = true;
audio.autoplay = true;
document.body.appendChild(audio);
var context = new AudioContext();
var analyser = context.createAnalyser();
 var source = context.createMediaElementSource(audio);
source.connect(analyser);
analyser.connect(context.destination);
var frequencyData = new Uint8Array(analyser.frequencyBinCount);
function renderFrame() {
   requestAnimationFrame(renderFrame);
   analyser.getByteFrequencyData(frequencyData);
}
renderFrame();

这工作得很好,但我需要等待整个音频文件播放。有什么办法能让我立刻得到这些数据吗?

没有。你必须通过像DSP.js这样的库来做你自己的FFT。