2016-11-25 3 views
1

Я пытаюсь понять, как работает AVPlayer & AVPlayerController. Я встроен в плеер, поэтому у меня есть два режима: маленький & весь экран. Когда маленькая кнопка play/plause и полноэкранная кнопка работают очень хорошо. Но как только он отображается в полноэкранном режиме, следующие кнопки не действуют: воспроизведение, пауза, выполнение, минимизация.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 Alloc] инициализации ...

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

Нельзя ли использовать того, кто уже здесь? –

Смежные вопросы