Автономное воспроизведение FairPlay запрашивает сеть для загрузки плейлистов m3u8

#ios #swift #avfoundation #fairplay #avassetdownloadtask

#iOS #swift #avfoundation #fairplay #avassetdownloadtask

Вопрос:

Мы создаем функцию автономного воспроизведения Fairplay в нашем приложении, используя набор API AVAssetDownloadTask. Мы можем успешно загрузить контент, но мы заметили сетевые действия, которые представляют собой запросы к плейлистам m3u8, представленным в boot.xml в пакете movpkg при воспроизведении загруженного контента.

Проблема в том, что для загрузки этих плейлистов m3u8 требуются файлы cookie, а срок действия файлов cookie истекает через 1 день, что приводит к сбою воспроизведения, когда срок действия файлов cookie истек. Мой вопрос в том, почему для воспроизведения загруженного контента необходимо загружать эти плейлисты? Разве он не должен воспроизводить загруженный контент без сети?

Спасибо.

Ответ №1:

Убедитесь, что у вас есть только один экземпляр AVURLAsset, указывающий на ваш загруженный ресурс. Когда несколько AVURLAssets указывают на один и тот же файл .movpkg, иногда AVPlayerItem возвращается к сетевому воспроизведению.

Обратите внимание, что Apple заявила, что они улучшили это в iOS 14.2: https://developer.apple.com/documentation/ios-ipados-release-notes/ios-ipados-14_2-release-notes:

  • Улучшена поддержка нескольких одновременных экземпляров AVURLAsset по URL-адресам файловой системы HLS в автономном режиме.
  • Теперь вы можете использовать несколько одновременных объектов AVPlayerItem и других объектов AVFoundation на автономных ресурсах HLS с завершенными объектами AVMediaSelection без запуска сетевых операций чтения.