2017-07-24 1 views
2

Erstellen meiner ersten App und versuchen, das Hintergrundvideo horizontal anzupassen.AVPlayer Video passt nicht horizontal

Unterhalb der Code l'm mit

override func viewDidLoad() 
{ 
    super.viewDidLoad() 

    let URL = Bundle.main.url(forResource: "homedocapp", withExtension: "mp4") 

    Player = AVPlayer.init(url: URL!) 

    PlayerLayer = AVPlayerLayer(player: Player) 
    PlayerLayer.videoGravity = AVLayerVideoGravityResizeAspectFill 
    PlayerLayer.frame = self.view.frame; PlayerLayer.videoGravity = AVLayerVideoGravityResizeAspectFill 
    PlayerLayer.zPosition = -1 

    Player.actionAtItemEnd = AVPlayerActionAtItemEnd.none 

    self.view.layer.addSublayer(PlayerLayer) 

    Player.play() 

    view.layer.insertSublayer(PlayerLayer, at: 0) 

    NotificationCenter.default.addObserver(self, selector: #selector(playerItemReachEnd(notification:)), name: NSNotification.Name.AVPlayerItemDidPlayToEndTime, object: Player.currentItem) 


} 

AVPlayer Horizontal display

Danke in Fortschritte

Antwort

0

Wenn 'viewDidLoad' genannt wird, schauen Sie noch nicht die richtige Größe haben. Ihr PlayerLayer wird also ebenfalls eine falsche Größe haben. Versuchen Sie, Ihren Code auf die ‚viewDidLayoutSubviews‘ Funktion zu bewegen:

override func viewDidLayoutSubviews() 
{ 
    super.viewDidLayoutSubviews() 

    // Set up your player layer instance here 
} 
+0

tun! Ich werde dich es wissen lassen. Danke für den Tipp – o2webdev

+0

Arbeit wie ein Zauber. Jetzt beim Drehen des geteilten Bildschirms horizontal. Will ein Bild in Kürze hochladen – o2webdev

0

Sie haben die Spieler mit Einschränkungen, um die Größe, wenn es Initialisierung in viewDidLoad ist, ist Ursache self.view.frame dann nicht korrekt.

+0

Vielen Dank – o2webdev

0

Spilt screen

Beim Drehen ich geteilten Bildschirm zu bekommen.

class ViewController: UIViewController { 

var Player: AVPlayer! 
var PlayerLayer: AVPlayerLayer! 



override func viewDidLayoutSubviews() 
{ 
    super.viewDidLayoutSubviews() 

    let URL = Bundle.main.url(forResource: "homedocapp", withExtension: "mp4") 

    Player = AVPlayer.init(url: URL!) 

    PlayerLayer = AVPlayerLayer(player: Player) 
    PlayerLayer.videoGravity = AVLayerVideoGravityResizeAspectFill 
    PlayerLayer.frame = view.layer.frame 

    Player.actionAtItemEnd = AVPlayerActionAtItemEnd.none 


    Player.play() 

    view.layer.insertSublayer(PlayerLayer, at: 0) 

    NotificationCenter.default.addObserver(self, selector: #selector(playerItemReachEnd(notification:)), name: NSNotification.Name.AVPlayerItemDidPlayToEndTime, object: Player.currentItem) 


} 

auf die harte Tour lernen

Verwandte Themen