Как приостановить мой экземпляр 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()
}
Другие вопросы по тегам