читать mp3 десятичные значения - PullRequest
0 голосов
/ 02 апреля 2011

Я хотел бы прочитать возможность сохранять значения децибел через интервалы локального mp3 в текстовый файл.я думаю, что смогу справиться с записью в текстовый файл, как только у меня будут значения (хотя любая помощь будет отличной) Лучший

Я хочу сделать это, используя AS3

и большое спасибо

1 Ответ

0 голосов
/ 03 апреля 2011

Сначала необходимо загрузить MP3, например, используя Sound.load() или включив его в свою библиотеку в IDE Flash и экспортировав его для ActionScript. Затем вы можете использовать Sound.extract(), чтобы получить данные формы сигнала из MP3. Это вернет вам данные выборки за интервал, упакованный в ByteArray, который вы можете прочитать.

Выборки находятся в диапазоне [-1.0, 1.0], поэтому один простой способ рассчитать уровень интенсивности для интервала - это найти максимальное абсолютное значение среди выборок. Вот пример кода:

var sound:Sound = new Sound();
sound.load(new URLRequest("sound.mp3"));
sound.addEventListener(Event.COMPLETE, onSoundLoaded);

function onSoundLoaded(event:Event):void {
    var byteArray:ByteArray = new ByteArray();
    sound.extract(byteArray, 4096);
    byteArray.position  = 0;
    var max:Number = 0;
    while(byteArray.position != byteArray.length)
    {
        var sample:Number = Math.abs(byteArray.readFloat());
        if(sample > max) max = sample;
    }
    trace(max);
}

Это выведет уровень для первых 4096 сэмплов. Вам придется повторить это, чтобы получить больше значений.

...