2017-03-24 1 views
1

Je travaille avec apple tv. J'ai un UIView dans mon UIViewController. J'ajoute AVPlayerViewController comme sous-vue de mon UIView. L'image de UIView est CGRect (x: 50, y: 50, largeur: 1344, hauteur: 756). Je mets la trame AVPlayerViewController à l'image de mon UIView.AVPlayerViewController dans une vue ne montre pas les commandes de lecture

Problème est que la vidéo joue bien dans son cadre, mais les contrôles comme pause, lecture, transfert, etc. sont cachés et ne fonctionne pas. Mais lorsque je définis un cadre comme CGRect (x: 0, y: 0, width: 1920, height: 1080), les contrôles sont visibles et fonctionnent.

Mon code est comme ci-dessous:

let url = URL(string: "https://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4") 
    let item = AVPlayerItem(url: url!)   
    self.player = AVPlayer(playerItem: item) 
    self.avplayerController = AVPlayerViewController() 
    self.avplayerController.player = self.player 
    self.avplayerController.view.frame = videoPreviewLayer.frame 
    self.avplayerController.showsPlaybackControls = true 
    self.avplayerController.requiresLinearPlayback = true 

    self.addChildViewController(self.avplayerController) 
    self.view.addSubview(self.avplayerController.view) 

    self.avpController.player?.play() 

S'il vous plaît aider.

Répondre

2

Ceci est un comportement attendu:

AVPlayerViewController est conçu de telle sorte que lorsqu'il est en mode plein écran, l'expérience de lecture complète (lavage, accès au panneau d'information, etc.) sont tous disponibles. Lorsque dans un espace inférieur à plein écran, l'hypothèse est que c'est juste un de plusieurs éléments interactifs sur l'écran, et ainsi la vue ne devrait pas absorber tous les événements de surface tactile comme contrôle de transport .

Vous pouvez en lire plus à ce sujet sur ce fil: https://forums.developer.apple.com/thread/19526

+0

Hey merci pour la clairance David. Est-ce que je peux montrer des commandes pour avplayer quand l'espace est inférieur au plein écran? – Ruchi

+0

@Ruchi oui vous pouvez le faire en ajoutant vos vues personnalisées sur une instance de AVPlayer, obtenir des informations sur les propriétés AVPlayer, mais il n'est pas possible d'utiliser un AVPlayerViewController natif. –

+0

Ok. Connaissez-vous une bibliothèque ou un cadre tiers pour cela? J'ai cherché mais je n'ai pas pu en trouver un seul. – Ruchi