Wie erkennt man den Vollbildmodus mit AVPlayerViewController in Swift?IOS

Programmierung für iOS
Guest
 Wie erkennt man den Vollbildmodus mit AVPlayerViewController in Swift?

Post by Guest »

Ich versuche zu erkennen, wann sich der AVPlayerViewController im Vollbildmodus befindet, aber es fällt mir schwer, dies zu erreichen. Ich würde gerne wissen, wann der Benutzer die Schaltfläche „Erweitern“ auswählt, um in den Vollbildmodus zu gelangen, wie hier gezeigt:

Image


Ich habe den entsprechenden Beobachter gemäß diesen Vorschlägen hinzugefügt:
  • Erkennen Sie Videos, die im Hochformat oder im Vollbildmodus abgespielt werden Querformat
  • So erkennen Sie den Vollbildmodus von AVPlayerViewController
Der entsprechende Code:

Code: Select all

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
}
}
}
}
Es scheint jedoch nie den Code print("Full Screen") zu erreichen. Es drückt auf „Drucken“ („Normaler Bildschirm“), unabhängig davon, ob sich der Player im Normal- oder Vollbildmodus befindet.

Vielen Dank!

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post