AVAudioPlayer M4A-файл, преобразованный из AIFF, дает другую задержку, чем M4A, преобразованный из ADTS AAC

Работая над ритмической музыкальной игрой, я заметил, что AVAudioPlayer имеет задержку между сообщаемым.currentTime и фактическим местоположением в аудиофайле, которая варьируется в зависимости от формата файла.

Например, при воспроизведении файла.m4a задержка будет меньше, чем при воспроизведении файла.aac (ADTS AAC).

Это несколько понятно, и я уже принял это (поскольку задержка была постоянной в зависимости от типа файла).

Чего я не понимаю, так это того, почему такие разные задержки могут также возникать для 2 типов файлов.m4a: преобразованных из исходного файла AIFF и преобразованных сначала в ADTS AAC, а затем преобразованных в.m4a.

Другими словами:

Если я бегу:

afconvert -f m4af -d aac my_aif_file.aif

Я получаю файл, играющий с меньшей задержкой, чем файл, который был создан следующим образом:

afconvert -f adts -d aac my_aif_file.aif
afconvert -f m4af -d aac my_aif_file.aac

Любое объяснение / решение, чтобы понять эти различные результаты будут оценены.

1 ответ

Решение

Нашел вопрос - это само преобразование.

При преобразовании в adts aac преобразованный звук имеет префикс около 40 мс тишины... Странно...

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