ByteArray to Vector = AS3 RangeError: Ошибка № 2004: один из параметров недопустим - PullRequest
2 голосов
/ 16 августа 2011

Я пытаюсь извлечь данные 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]);
        }
    }

Спасибо !!

...