Commandes de lecture AVPlayerViewController manquantes dans iOS14
J'ai un AVPlayerViewController que j'intègre dans un fichier UIStackView. Le code fonctionne bien sur iOS13 mais sur iOS14 je n'ai pas de commandes de lecture. Les commandes de lecture n'apparaissent pas lorsque je touche la vue, mais la vidéo démarre lorsque je fais un geste de pincement. Lorsque la vidéo est lue, j'obtiens soudainement les commandes de lecture et je peux interagir avec elles. Mon TapableAVPlayerViewControllern'est pas le problème car je l'ai essayé avec une norme AVPlayerViewControlleret j'obtiens le même comportement. Parfois, je vois même un gros bouton de lecture (comme dans iOS13) qui disparaît lorsque la vue est complètement chargée.
Comment récupérer mes commandes de lecture? Toute aide appréciée! Merci!
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
}
Réponses
J'ai trouvé une solution. Cela ressemble aux UIContextMenuInteractioninterruptions des commandes de lecture. Lorsque j'ai défini la configuration d'interaction après tout le AVPlayerViewControllercode de configuration, j'ai récupéré mes commandes de lecture.