我正在尝试从mp3中提取fft数据而不播放它。我正在使用AS3和CS5。我发现了一个很棒的实时频谱分析仪here,但它只适用于麦克风。我还找到了一个很棒的mp3 looper here,我用它进行声音提取。我基本上试图结合这两个链接中找到的来源。我在从mp3样本中读取byteArray数据到用于制作fft的Vector时得到一个RangeError。 mp3数据是立体声的所以我除以8(左声道为4个字节,右声道为4个字节)。它通过循环读取就好并跟踪正确的数据但是当它到达结束时我得到错误,即使循环设置只经过一次。任何和所有的帮助将不胜感激。这是我用于将数据移动到Vector中的代码。
public function readMp3(): void {
for (var i:int = 0; i < byteArray.length/8; i++) {
byteArray.position = i;
/*
m_buf is fed into the updateSpectrum function in
the Sound Analyzer
*/
m_buf[i] = byteArray.readFloat();
trace (m_buf[i]);
}
}
谢谢!