2016-11-25 72 views
1

我想了解AVPlayer & AVPlayerController的工作原理。 我在視圖中嵌入了我的播放器,所以我的播放器有兩種模式:小屏幕&全屏。 當播放/播放按鈕和全屏按鈕很少播放時很好。但一旦它是全屏幕,下面的按鈕不起作用:播放,暫停,完成,最小化。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

它爲我的self.present(的PlayerController,動畫:真,完成:無)

既然是控制器,我們應該把它作爲一個控制器,而不是子觀看它。

+0

我不想出示它,我希望它被嵌入到視圖中... –

0

您可以添加AVPlayer作爲一個層,並添加自己的自定義按鈕

球員= [[[AVPlayer頁頭]初始化...

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

有沒有辦法使用已經在這裏的人? –