-
Créez une expérience de lecture multivue fluide
Apprenez à créer des expériences de lecture multivue avancées dans votre app. Nous verrons comment synchroniser la lecture entre plusieurs lecteurs, améliorer la lecture multivue grâce à une intégration fluide avec AirPlay, et optimiser la qualité de lecture pour offrir des expériences de lecture multivue captivantes.
Chapitres
- 0:00 - Introduction
- 2:08 - Coordination de la lecture multivue
- 9:09 - Prise en charge d’AirPlay dans une app offrant des expériences multivue
- 14:14 - Optimiser la qualité des flux en multivue
Ressources
Vidéos connexes
WWDC21
-
Rechercher dans cette vidéo…
-
-
7:55 - Coordinate playback
import AVFoundation var closeUpVideo = AVPlayer() var birdsEyeVideo = AVPlayer() let coordinationMedium = AVPlaybackCoordinationMedium() do { try closeUpVideo.playbackCoordinator.coordinate(using: coordinationMedium) }catch let error { // Handle error } do { try birdsEyeVideo.playbackCoordinator.coordinate(using: coordinationMedium) }catch let error { // Handle error } -
13:17 - Set preferred participant
import AVFoundation import AVRouting var closeUpVideo = AVPlayer() var birdsEyeVideo = AVPlayer() let routingPlaybackArbiter = AVRoutingPlaybackArbiter.shared() routingPlaybackArbiter.preferredParticipantForExternalPlayback = birdsEyeVideo routingPlaybackArbiter.preferredParticipantForNonMixableAudioRoutes = birdsEyeVideo -
16:15 - Set network resource priority
birdsEyeVideo.networkResourcePriority = .high closeUpVideo.networkResourcePriority = .low
-
-
- 0:00 - Introduction
Découvrez comment créer des expériences de lecture multivues avec des flux synchronisés et non synchronisés. Par exemple, plusieurs angles d'un match de football ou des flux d'événements indépendants. Utilisez les API AVFoundation et AVRouting pour synchroniser les lecteurs, gérer le routage AirPlay et optimiser la qualité de lecture sur plusieurs flux.
- 2:08 - Coordination de la lecture multivue
AVPlaybackCoordinationMedium, issu du framework AVFoundation, simplifie la synchronisation entre plusieurs lecteurs vidéo dans une app. Le framework gère les comportements complexes comme les variations de vitesse, les sauts temporels, les interruptions et la synchronisation au démarrage. En connectant chaque AVPlayer au médium de coordination, les actions comme lecture, pause et recherche s'appliquent automatiquement à tous les lecteurs de manière synchronisée.
- 9:09 - Prise en charge d’AirPlay dans une app offrant des expériences multivue
AirPlay permet aux utilisateurs de diffuser des vidéos vers de grands écrans ou de l'audio vers leurs HomePods. Pour les expériences multivues, où plusieurs flux sont diffusés simultanément, utilisez AVRoutingPlaybackArbiter pour gérer quel flux est envoyé vers un appareil externe. Par défaut, l'arbitre privilégie le flux préféré de l'utilisateur pour la lecture externe. Par exemple, dans une app multivues vidéo, la vue aérienne peut être définie comme flux préféré : elle se diffuse automatiquement sur l'Apple TV via AirPlay, pendant que la vue rapprochée reste sur l'iPad. Les utilisateurs peuvent facilement changer de flux en mettant à jour le lecteur préféré. L'arbitre gère aussi le routage audio, en diffusant le flux audio préféré vers un HomePod lorsque l'audio est routé. Cette intégration fluide permet aux utilisateurs de contrôler l'expérience multivues sans effort, en gardant la synchronisation entre les flux.
- 14:14 - Optimiser la qualité des flux en multivue
Dans le streaming multivues, les flux peuvent avoir des niveaux d'importance différents. Par exemple, une vue aérienne du terrain de sport peut être plus essentielle que les gros plans du public. Pour optimiser la qualité selon les priorités, utilisez la propriété networkResourcePriority d'AVPlayer. Cela vous permet d'attribuer une priorité élevée aux flux essentiels (plus de bande passante, meilleure résolution) et une priorité faible aux flux secondaires (moins de bande passante, résolution réduite). En cas de réseau limité, le système ajuste automatiquement la résolution en fonction de la priorité pour préserver la qualité des flux importants.