Не удается обнаружить переходы полноэкранного AVPlayerViewController - PullRequest
0 голосов
/ 25 февраля 2019

Старый «MPMoviePlayerController», который теперь устарел, имел делегата для «MPMoviePlayerWillEnterFullScreen».

https://developer.apple.com/documentation/foundation/nsnotification/name/1620898-mpmovieplayerwillenterfullscreen

Не могу найти ничего похожего для текущего стандарта, «AVPlayerViewController» после просмотрачерез документы.

https://developer.apple.com/documentation/avkit/avplayerviewcontrollerdelegate

Как реализовать делегат для AVPlayerViewController, если он основан на переключении полноэкранного режима проигрывателя?

спасибо.

1 Ответ

0 голосов
/ 26 февраля 2019

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

    [self.playerViewController addObserver:self forKeyPath:@"videoBounds" options:0 context:NULL];

Затем используйте свою собственную логику, когда наблюдение входит, чтобы определить, было ли оно переключено на полный экран или другое изменение границ:

    - (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
{
    if (object == self.playerViewController && [keyPath isEqualToString:@"videoBounds"]) {
        // check your playerViewController videoBounds here compared to what they were previously
        // they could change outside of toggleFullScreen (rotation for example)
    }
}

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...