Методы 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 не имеет ничего общего с этой проблемой