我正在尝试获取音频文件的频率数据,而无需播放整个实际的音频文件。现在我正在做以下事情:
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();
这很好用,但我需要等待整个音频文件播放。有没有办法可以立即获得这些数据?