2016-04-01 2 views
1

Я создал приложение для отображения нескольких коротких фильмов для выставки, приложение полностью функционально работает на iPad, но на внешнем дисплее видео будет оставаться на последнем кадре. Мы хотим использовать IPad в качестве внешнего управления для дисплея, но пользователи всегда должны видеть графический интерфейс выбора видео, когда видео не воспроизводитсяiOS Swift App AVPlayerController не работает на внешнем дисплее

Вот фрагмент кода, чтобы воспроизвести видео

let playerItem = AVPlayerItem(URL: NSURL(fileURLWithPath: videoPath!)) 
let player = AVPlayer(playerItem: playerItem) 
NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(VideoCollectionViewController.playerDidReachEnd(_:)), name: AVPlayerItemDidPlayToEndTimeNotification, object: playerItem) 

playerController.player = player 
self.presentViewController(playerController, animated: true) { 
    self.playerController.player!.play() 
} 

И вот функция называется, когда она достигает конца.

func playerDidReachEnd(notification: NSNotification) { 
    NSNotificationCenter.defaultCenter().removeObserver(self) 

    playerController.player?.currentItem 
    playerController.dismissViewControllerAnimated(true, completion: nil) 
} 

Он также не падать обратно на экран приложения, если видео остановлено с помощью кнопки «Done» проигрывателя

Есть ли трюк, чтобы сделать его уволить AVPlayerController так будет падать назад к моему приложению прямо на каждом дисплее?

ответ

0

Я полностью забыл опубликовать свой ответ здесь, в случае, если кто-то другой может прийти к этой проблеме.

Следующий код должен быть помещен в playerDidReachEnd, не сильно отличается, но он удаляет игрока со всех экранов.

playerController.dismissViewControllerAnimated(true, completion: nil) 
playerController.view.removeFromSuperview() 
self.presentedViewController?.dismissViewControllerAnimated(true, completion: nil) 
Смежные вопросы