2016-11-25 21 views
1

AVPlayer & AVPlayerControllerの仕組みを理解しようとしています。 私は自分のプレーヤーをビューに埋め込んでいますので、私のプレーヤーは2つのモード、少し&フルスクリーンを持っています。 再生/一時停止ボタンとフルスクリーンボタンはほとんど機能しません。しかし、それがフルスクリーンになると、次のボタンは再生、一時停止、終了、最小化の効果はありません。ここでAVPlayerController - フルスクリーンでボタンが機能しない

は私のコードです:

let videoURL = NSURL(string: "https://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4") 
    let avPlayer:AVPLayer = AVPlayer(url: videoURL! as URL) 
    let playerController = AVPlayerViewController() 
    playerController.player = avPlayer 
    playerController.view.backgroundColor = UIColor.racingGreenColor(); 
    playerController.view.translatesAutoresizingMaskIntoConstraints = false; 
    playerController.showsPlaybackControls = true; 
    self.middleView.addSubview(playerController.view) 
    //avPlayer.play() 

    self.middleView.addConstraint(NSLayoutConstraint(item: playerController.view, attribute: .width, relatedBy: .equal, toItem: self.middleView, attribute: .width, multiplier: 1, constant: 0)); 
    self.middleView.addConstraint(NSLayoutConstraint(item: playerController.view, attribute: .height, relatedBy: .equal, toItem: self.middleView, attribute: .height, multiplier: 1, constant: 0)); 
    self.middleView.addConstraint(NSLayoutConstraint(item: playerController.view, attribute: .centerX, relatedBy: .equal, toItem: self.middleView, attribute: .centerX, multiplier: 1, constant: 0)); 
    self.middleView.addConstraint(NSLayoutConstraint(item: playerController.view, attribute: .centerY, relatedBy: .equal, toItem: self.middleView, attribute: .centerY, multiplier: 1, constant: 0)); 

誰かが私を助けてくださいことはできますか? 興味のある4つのメソッドの代理人はありますか?

答えて

1
self.addChildController(playerController); 

私はそれを追加しましたあなたのメインビューコントローラとそれは "完了"と "最小化"のトリックを行います。

0

それは(アニメーションplayerController、:真、完了:ゼロ)self.presentとして私の作品

を、それはコントローラであるので、我々はコントローラとしてではなく、サブそれを見て、それを使用する必要があります。

+0

私はそれを提示したくない、私はそれがビューに埋め込まれたい... –

0

あなたは層としてAVPlayerを追加し、

選手= [[[AVPlayerのalloc]のinit独自のカスタムボタンを追加することができます...

playerLayer = [AVPlayerLayer playerLayerWithPlayer:player]; 
CGSize size = self.view.bounds.size; 
float x = size.width/2.0-187.0; 
float y = size.height/2.0 - 125.0; 

playerLayer.frame = CGRectMake(x, y, 474, 320); 
[playerLayer setVideoGravity:AVLayerVideoGravityResizeAspectFill]; 
[self.view.layer addSublayer:playerLayer]; 
[player play]; 
+0

すでにここにいる人を使用する方法はありますか? –

関連する問題