Как определить полноэкранный режим с помощью AVPlayerViewController в Swift?

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

Я добавил соответствующего наблюдателя в соответствии с этими предложениями:

Обнаружение видео во весь экран в книжной или альбомной ориентацииКак определить полноэкранный режим AVPlayerViewController

Соответствующий код:

var avWidth:CGFloat = 375
var avHeight:CGFloat = 300

override func viewDidLoad()
{
    super.viewDidLoad()

    let path = NSBundle.mainBundle().pathForResource("cable pressback", ofType: "mp4")
    let url = NSURL.fileURLWithPath(path!)
    let player = AVPlayer(URL: url)

    playerViewController.player = player

    playerViewController.view.frame = CGRectMake(0, 100, self.view.frame.size.width, 300)

    playerViewController.view.translatesAutoresizingMaskIntoConstraints = true

    view.addSubview(playerViewController.view)

    self.addChildViewController(playerViewController)

    [playerViewController .addObserver(self, forKeyPath:"videoBounds" , options: NSKeyValueObservingOptions.New, context: nil)]

}

override func observeValueForKeyPath(keyPath: String?, ofObject object: AnyObject?, change: [String : AnyObject]?, context: UnsafeMutablePointer<Void>)
{
    print("playerViewController.view.frame = \(playerViewController.view.frame)")

    if keyPath == "videoBounds"
    {
        let rect = change!["new"]! as! NSValue

        if let newrect = rect.CGRectValue() as CGRect?
        {
            if newrect.width > 0 || newrect.height > 0
            {
                if avWidth > 0 || avHeight > 0
                {
                    if newrect.width > avWidth || newrect.height > avHeight
                    {
                        print("Full Screen")
                    }
                    else if newrect.width < avWidth || newrect.height < avHeight
                    {
                        print("Normal screen")
                    }
                }
                avWidth = newrect.width
                avHeight = newrect.height
            }
        }
    }
}

Тем не менее, он никогда не достигает кодаprint("Full Screen"), Это бьетprint("Normal Screen") независимо от того, находится плеер в нормальном или полноэкранном режиме.

Спасибо!

Ответы на вопрос(4)

Ваш ответ на вопрос