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

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

Сообщение Anonymous »

Я пытаюсь определить, когда 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)
{
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("Normal Screen") независимо от того, находится ли плеер в обычном или полноэкранном режиме.

Спасибо!

Подробнее здесь: https://stackoverflow.com/questions/371 ... r-in-swift
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»