2015-09-15 1 views
0

Je traite actuellement un code existant qui affiche un UIView comme ceci:Quelle est la meilleure façon d'afficher des vidéos paysage plein écran et être en mesure de glisser vers la gauche ou la droite à une autre vidéo?

enter image description here

Cette vue montre une vidéo en plein écran dans le paysage (portrait est pas nécessaire). Sur la vidéo se trouve une petite barre grise avec une étiquette et un bouton pour fermer la vue.

Je souhaite conserver cette fonctionnalité mais ajouter la possibilité pour un utilisateur de faire glisser vers la gauche ou la droite pendant la lecture de la vidéo pour afficher une autre vidéo en plein écran tout en conservant la barre grise en bas. Chaque vidéo peut être stockée dans un tableau ou un dictionnaire. Mes pensées ont été que je peux ajouter un reconnaisseur de geste à la vue, mais je ne suis pas sûr de savoir comment faire face au chargement de différentes vidéos présentées en plein écran comme ça. Je suis sûr qu'il est possible de charger chaque vidéo dans des UIViews séparés et d'échanger ce qui est affiché lorsque le geste est détecté, mais je ne pense pas que cela fournira une transition propre et animée entre les vidéos. Il est important que les vidéos restent en mode plein écran. Quelle serait la meilleure approche pour y parvenir?

Répondre

0

Vous pouvez avoir une vidéo en cours dans un MPMoviePlayerController * et au sommet avoir une UIWindow * invisible avec windowLevel "UIWindowLevelStatusBar". Ajoutez le geste de panoramique à cette UIWindow. Et quand vous Pano gauche ou à droite, charger une nouvelle URL média comme ceci:

[player setContentURL:xyz]; 
[player play]; 

Reprendre la lecture de l'endroit où vous avez quitté avec:

initialPlaybackTime = <last known position before swipe> 
+0

Serait-ce la meilleure façon de fournir une transition animée entre les vidéos bien que? – Gordonium

+0

Eh bien, pour l'animation, remplacez le reconnaisseur de gestes par un UICollectionView *. Demandez à la cellule de cette vue de collection de charger les captures d'écran, de sorte que lorsque vous glissez, les captures d'écran soient prêtes pour la prévisualisation et disparaissent au fur et à mesure que la vidéo commence à jouer. Vous pouvez prendre cette capture d'écran lorsque vous balayez hors de la vidéo qui joue déjà. Cela vous donnera ~ .4 secondes où vous pouvez arrêter/démarrer la vidéo. – Syzygy