NFC.cool
NFC.cool

Reputation: 3303

AVPlayerViewController playback controls missing in iOS14

I have a AVPlayerViewController that I embed in a UIStackView. The code works fine on iOS13 but on iOS14 I have no playback controls. The playback controls do not appear when I tap the view but the video starts when I make a pinch gesture. When the video plays I suddenly get the playback controls and I can interact with them. My TapableAVPlayerViewController is not the issue because I tried it with a standard AVPlayerViewController and I get the same behaviour. Sometimes I even see a big play button (like it was in iOS13) which disappears when the view fully loaded.

How do I get my playback controls back? Any help appreciated! Thanks!

private func setupVideo(for item: Item) {
    let avPlayer = AVPlayer()
    let avPlayerViewController = TapableAVPlayerViewController()
    avPlayerViewController.delegate = self
    avPlayerViewController.view.addInteraction(contextMenuInteraction)
    
    NotificationCenter.default.addObserver(self,
                                           selector: #selector(DetailViewController.playerItemDidReachEnd(_:)),
                                           name: NSNotification.Name.AVPlayerItemDidPlayToEndTime,
                                           object: avPlayer.currentItem)

    avPlayerViewController.player = avPlayer
    avPlayerViewController.view.translatesAutoresizingMaskIntoConstraints = false
    avPlayerViewController.view.heightAnchor.constraint(equalToConstant: view.bounds.width * CGFloat(item.height) / CGFloat(item.width)).isActive = true
    addChild(avPlayerViewController)
    stackView.removeArrangedSubview(imageView)
    stackView.insertArrangedSubview(avPlayerViewController.view, at: 0)
    avPlayerViewController.didMove(toParent: self)
    let url = URL(string: viewModel.link)
    let playerItem = AVPlayerItem(url: url!)
    avPlayer.replaceCurrentItem(with: playerItem)
    self.avPlayer = avPlayer
    self.avPlayerViewController = avPlayerViewController
}

Upvotes: 2

Views: 799

Answers (1)

NFC.cool
NFC.cool

Reputation: 3303

I found a solution. It looks like the UIContextMenuInteraction breaks the the playback controls. When I set the interaction setup after the whole AVPlayerViewController setup code I got my playback controls back.

Upvotes: 0

Related Questions