Как приостановить мой экземпляр AVPlayer на tvOS?
Я работал над приложением tvOS, в котором весь видеоконтент отображается через экземпляры AVPlayerViewController. Я хочу добавить функцию, аналогичную Netflix, которая, когда пользователь смотрит без взаимодействия с пользователем в течение некоторого времени, приостанавливает видео и отображает сообщение, спрашивающее, продолжает ли пользователь смотреть. При этом я обнаружил, что невозможно приостановить экземпляр AVPlayer внутри AVPlayerViewController, оба вызывая [player pause]
а также [player setRate:0.0]
, поскольку он немедленно возобновляет воспроизведение (даже имеет ответ пользовательского интерфейса, так как элементы управления плеером отображаются на короткое время).
Могу ли я избавиться от этого авто-резюме? Я хочу не выпускать плеер, а также создавать свой собственный ViewController, так как это будет означать переписывание пользовательских элементов управления с нуля, но больше ничего не приходит на ум. Есть идеи?
Спасибо
1 ответ
В твос10 то AVPlayer
внутри AVPlayerViewController
работает нормально, вы можете приостановить его, когда захотите. Добавьте этот код в свой UIViewController
унаследованный от AVPlayerViewController
:
self.player = AVPlayer.init(playerItem: AVPlayerItem.init(asset: AVAsset.init(url: URL.init(string: "http://devimages.apple.com/iphone/samples/bipbop/bipbopall.m3u8")!)))
self.player?.play()
DispatchQueue.main.asyncAfter(deadline: .now() + 5.0) {
self.player?.pause()
}