Я пытаюсь извлечь данные FFT из mp3 без воспроизведения.Я использую AS3 и CS5.Я нашел отличный анализатор спектра в реальном времени здесь , но он работает только с микрофоном.Я также нашел здесь замечательный mp3-лупер , который я использую для извлечения звука.По сути, я пытаюсь объединить источник, найденный в обеих этих ссылках.Я получаю RangeError при чтении данных byteArray из образца mp3 в Vector, используемый для создания fft.Данные в формате mp3 стерео, поэтому я делю на 8 (4 байта для левого канала, 4 для правого).Он отлично читает цикл и отслеживает правильные данные, но когда он доходит до конца, я получаю сообщение об ошибке, даже если цикл настроен на прохождение только один раз.Любая помощь будет высоко ценится.Вот мой код, используемый для перемещения данных в вектор.
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]);
}
}
Спасибо !!