Что на самом деле должно делатьOptimizeForNetworkUse?

Из документации Apple это просто говорит:

Когда значение этого свойства равно YES, выходной файл будет записан таким образом, что воспроизведение может начаться после загрузки только небольшого количества файла.

Но что на самом деле происходит?

    One Solution collect form web for “Что на самом деле должно делатьOptimizeForNetworkUse?”

    Когда shouldOptimizedForNetworkUse установлен на YES, вызов finishWriting переместит атом MP4 moov (аспект кино) с конца файла в начало файла. Атом moov содержит информацию о файле фильма, как временные рамки и продолжительность. Moov также содержит «субатомные» символы, содержащие информацию, подобную трекам, смещение данных в файле и т. Д.

    Воспроизведение возможно только с использованием информации в атоме moov, а когда оно расположено в начале файла, а не в конце файла, проигрыватель фильмов может начать воспроизведение файла, даже если он только загрузил его начало.

    На практике современные браузеры будут извлекать атом moov из конца файла с использованием заголовка диапазона HTTP / 1.1 для загрузки атома moov, даже если он находится в конце файла.

    Установка функции shouldOptimizedForNetworkUse на YES также имеет несколько побочных эффектов:

    • Окончание фильма занимает немного больше времени, так как файл должен быть изменен вместе с смещениями в атоме.
    • Выходной файл заблокирован и недоступен, потому что finishWriting должен будет изменить весь файл (перемещать и обновлять атомы). Когда установлено значение NO, movieFragmentInterval устанавливает интервал смыва для записи в выходной видеофайл, делая файл доступным для чтения во время записи, когда фрагменты будут очищены до файла в их окончательной форме. Завершить запись просто нужно добавить атом moov в конец файла, а не касаться уже написанных фрагментов.
    PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.