loadCompressedDataFromByteArray пропустил некоторые данные

Я пытался извлечь необработанные данные из загруженного файла mp3. И вдруг метод sound.extract вернул меньше данных, чем Math.floor( sound.length * 44.1).

sound = new Sound();
sound.loadCompressedDataFromByteArray( data, data.length );
_output = new ByteArray();
var len : Number = sound.extract( _output, Math.floor( sound.length * 44.1 ) );

Например:

Math.floor( sound.length * 44.1 ) = 213120, but len = 211968 :(

Я пробовал много mp3 файлов и Sound.extract всегда возвращал меньше данных, чем ожидалось.

Я также попытался загрузить данные с помощью функции sound.load(), и в этом случае sound.extract вернул точно Math.floor (sound.length * 44.1), как и ожидалось.

Math.floor( sound.length * 44.1 ) = 213120 and len = 213120 :)

Прямая загрузка с использованием функции sound.load мне не очень подходит, потому что я анализирую mp3 LAME frame для encoderDelay и encoderPadding. Для воспроизведения mp3 без пробела.

Кто-нибудь знает, это ошибка loadCompressedDataFromByteArray Adobe или я сделал что-то не так?

0 ответов

Другие вопросы по тегам