AVPlayer не переключается между прогрессивной загрузкой и потоковой передачей
У меня есть приложение, которое обрабатывает потоковое видео. Начиная с списка воспроизведения.m3u8, он создает массив AVAssets и пролистывает их
[player replaceCurrentItemWithPlayerItem:[AVPlayerItem playerItemWithAsset:[assetItems objectAtIndex:index]]]
Это прекрасно работает, но перед этим я хочу транслировать короткое видео в формате mp4 с использованием прогрессивной загрузки. Я загружаю AVPlayer используя
AVAsset *prerollAsset = [AVAsset assetWithURL:prerollURL];
[player replaceCurrentItemWithPlayerItem:[AVPlayerItem playerItemWithAsset:prerollAsset]];
Он воспроизводится, но когда я продолжаю потоковое видео, как и раньше, я получаю состояние AVPlayerStatusFailed с ошибкой в AVPlayerItem: The operation could not be completed
Чтобы это работало, мне нужно создать объект AVPlayer для предварительной загрузки (прогрессивная загрузка), а затем совершенно новый объект AVPlayer, чтобы начать воспроизведение потокового видео.
Возможно ли, что один экземпляр AVPlayer не способен воспроизводить видео с прогрессивной загрузкой, за которым следует потоковое видео? Или может быть что-то еще я делаю не так?
1 ответ
Эта ошибка известна и предположительно исправлена в следующем основном выпуске iOS.
Тем временем создание нового объекта AVPlayer - единственный известный обходной путь.