Я пытаюсь начать воспроизведение больших файлов .aac в приложении для iOS или, как вариант, резко сократить время загрузки, чтобы воспроизведение могло начаться раньше. Похоже, это может быть особенностью файлов .aac.
В веб-браузерах, таких как Safari и Chrome, продолжительность неверна, а очистка работает плохо (Chrome) или ограничивается пошаговым поиском с самого начала (Safari), но тем не менее воспроизведение начинается быстро. Мой проигрыватель на основе AVFoundation в iOS, похоже, не может сделать это из коробки. Хотя мне бы хотелось иметь функцию очистки, просто возможность начать воспроизведение с высокой стабильностью и без значительной задержки (50 секунд или более) для больших файлов .aac была бы приемлемым решением.
Согласно моему пониманию кодировки файлов .aac, воспроизведение не может начаться до тех пор, пока не будут загружены все отдельные пакеты. Казалось бы, родные функции AVPlayer preferredForwardBufferDuration и automaticallyWaitsToMinimizeStalling должны позволять мне настраивать воспроизведение до полной загрузки файла, но у меня это тоже не работает.
Я проверил здесь ветку форума Apple, которая также не решена:
https://forums.developer.apple.com/thread/63435
Кто-нибудь решил эту проблему?





Я использовал следующую стороннюю структуру и работал хорошо. Я надеюсь, что это сработает для вас :)
https://github.com/tumtumtum/StreamingKit
Спасибо Митеш. Эта библиотека была полезна для обзора, но, похоже, она не поддерживается, поэтому не подходит для приложения.
Что ж, я решил проблему медленной загрузки, установив для AVURLAssetPreferPreciseDurationAndTimingKey bool значение false/NO для файлов .aac.
Это точное исправление специально для медленной загрузки этого типа файлов в приложениях iOS, с тем компромиссом, что поиск назад и вперед в файле не будет работать, пока не будет завершена вся загрузка. В Apple говорят:
Note that such precision may require additional parsing of the resource in advance of operations that make use of any portion of it, depending on the specifics of its container format. Many container formats provide sufficient summary information for precise timing and do not require additional parsing to prepare for it; QuickTime movie files and MPEG-4 files are examples of such formats. Other formats do not provide sufficient summary information, and precise random access for them is possible only after a preliminary examination of a file's contents.
Полную документацию смотрите здесь:
Если возможно, рассмотрите возможность преобразования вашего файла в формат HLS audio.