Методы AVPlayer seekToTime перестали работать на iOS 9

Я работал над видеоплеером, который передает потоковое видео с использованием HLS. Как только я начал отлаживать его на iOS 9, я заметил, что функция очистки перестала работать правильно. Тем не менее, он все еще работает на устройствах iOS 8.

Заглядывая больше в проблему, я сузил, что проблема должна быть в вызовах метода seekToTime.

Поток скраба следующий:

  • когда начинается очистка, видео приостанавливается с помощью метода экземпляра паузы AVPlayer
  • когда чистка заканчивается, ищите время, используя AVPlayer seekToTime: метод экземпляра
  • После этого воспроизведите видео, используя метод воспроизведения экземпляра AVPlayer.

Я попытался некоторые другие варианты для изменения текущей точки воспроизведения, такие как seekToTime: завершение Handler:, но все тот же результат.

В заметках о выпуске iOS 9 ( https://developer.apple.com/library/prerelease/ios/releasenotes/General/RN-iOSSDK-9.0/) я увидел, что они внесли некоторые изменения в AVFoundation, поэтому мне интересно, есть ли Известны ли какие-либо проблемы, связанные с этим в выпуске iOS 9?

2 ответа

Я только сталкивался с этой проблемой, и благодаря вашей ссылке я нашел решение. Это из заметки о выпуске:

В iOS 9 эти операции прерываются только тогда, когда скорость воспроизведения объекта AVPlayer изменяется на ненулевое значение с помощью свойства rate или метода воспроизведения.

что означает, что мы должны установить

player.rate = 1

перед звонком seekToTime

Не использовать player.pause до seekToTime player.rate не имеет ничего общего с этой проблемой

Другие вопросы по тегам