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 мс тишины... Странно...