2016-01-07 2 views
0

Мне нужно получить уведомление, когда нажата кнопка управления (на видео). Например, если я нажимаю на кнопку «пауза» или на кнопку «full scren», мне нужно реализовать некоторую логику. Могу ли я переопределить методы AVPlayerViewController? Я нашел AVPlayerViewControllerDelegate, но я не могу найти какие-либо методы для переопределения.AVPlayer override управления видео

Я также попытался добавить наблюдателя на AVPlayer

player.addObserver(self, forKeyPath: "status", options:NSKeyValueObservingOptions(), context: nil) 

и я использовал:

override func observeValueForKeyPath(keyPath: String, 
ofObject object: AnyObject, change: [String : AnyObject], 
context: UnsafeMutablePointer<Void>) { 
... 
} 

, но я получаю уведомление только при воспроизведении видео: этот метод не вызывается если я нажму кнопку управления.

Благодаря

+0

Как обнаружить прикосновение, когда пользователь нажал кнопку вперед/назад? Или мы можем скрыть их? – pkc456

ответ

0

keypaths различны, для стрижа, чтобы проверить воспроизведение/пауза после нажатия:

player .addObserver(self, forKeyPath: "rate", options: NSKeyValueObservingOptions.New, context: nil) 

и

observeValueForKeyPath 

проверить, как это

if ((change!["new"] as! Int) == 1) 

^это возвращает, если видео сыграно или приостановлено для истинных/ложных случаев

+0

Спасибо, что решил мою проблему –

0

AVPlayer испускают NSNotification при нажатии паузы. AVPlayerDidPauseNotification (или что-то в этом роде). Вы можете зарегистрировать слушателя в NSNotificationCenter для этого уведомления.

Смежные вопросы