Vidéo: How great leaders inspire action | Simon Sinek 2025
Cette section commence par vous montrer comment utiliser une abstraction de haut niveau, la classe MPMoviePlayerViewController, pour lire une vidéo dans une application iOS. Voici le code (dans le contrôleur de vue vidéo, à partir du fichier TTTVideoViewController):
- (IBAction) playVideo: (id) expéditeur {MPMoviePlayerViewController * moviePlayer = [[MPMoviePlayerViewController alloc] initWithContentURL: movieURL]; [self presentMoviePlayerViewControllerAnimated: moviePlayer];}
La simplicité même! Tout ce dont vous avez besoin est une URL qui pointe vers un fichier vidéo sur le système de fichiers ou vers une URL Internet avec laquelle instancier le lecteur vidéo. L'interface utilisateur du joueur gère l'arrêt, le démarrage, etc.
La variable de membre movieURL est définie dans la méthode viewDidLoad qui est appelée après l'initialisation de l'affichage pour ce contrôleur de vue (un exemple de film est maintenant enregistré dans un fichier de ressources nommé Videos.:
- (void) viewDidLoad {[super viewDidLoad]; // Effectue une configuration supplémentaire après le chargement de la vue. NSString * videoPath = [[NSBundle mainBundle] pathForResource: @ "Vidéos. Bundle / SampleVideo" deType: @ "MOV"]; movieURL = [NSURL fileURLWithPath: videoPath];}
L'exemple suivant montre comment utiliser une abstraction d'un niveau inférieur au précédent en utilisant la méthode de niveau inférieur appelée recordVideo:
- (IBAction) recordVideo: (id) expéditeur {UIImagePickerController * imagePicker = [[UIImagePickerController alloc] init]; imagePicker. sourceType = UIImagePickerControllerSourceTypeCamera; imagePicker. mediaTypes = [[NSArray alloc] initWithObjects: (NSString *) kUTTypeMovie, nil]; imagePicker. déléguer = soi-même; [[UIApplication sharedApplication] setStatusBarHidden: YES]; [self presentViewController: imagePicker animated: YES completion: nil];}
Lorsque cette méthode est appelée, un écran avec une interface caméra apparaît. En utilisant cet écran, l'enregistrement vidéo peut être démarré et arrêté. Lorsque l'enregistrement vidéo est terminé, cet écran transfère le contrôle au contrôleur de vue appelant.
Les deux méthodes suivantes sont les méthodes de rappel appelées par le sélecteur d'image (notez comment le contrôleur de vue vidéo s'enregistre en tant que délégué avec l'objet ImagePicker):
-
imagePickerControllerDidCancel est appelé lorsque l'enregistrement est annulé. Il rejette simplement le sélecteur et affiche à nouveau la barre d'état iOS.
- (void) imagePickerControllerDidCancel: (UIImagePickerController *) sélecteur {[[UIApplication sharedApplication] setStatusBarHidden: NO]; [picker dismissViewControllerAnimated: YES achèvement: nil];}
-
didFinishPickingMediaWithInfo commence en affichant à nouveau la barre d'état iOS et rejette le sélecteur. Il enregistre ensuite la vidéo enregistrée dans le rouleau de l'appareil. Enfin, cette méthode définit la variable membre movieURL pour qu'elle pointe vers cette nouvelle vidéo. Lorsque vous sélectionnez à nouveau Lire la vidéo, le film nouvellement enregistré est lu.
- (void) imagePickerController: (UIImagePickerController *) sélecteur didFinishPickingMediaWithInfo: résultats (NSDictionary *) {NSURL * moviePathURL = [résultats objectForKey: UIImagePickerControllerMediaURL]; NSString * moviePath = [chemin d'accès moviePathURL]; movieURL = moviePathURL; // Sauvegarde à la caméra si (UIVideoAtPathIsCompatibleWithSavedPhotosAlbum (moviePath)) {UISaveVideoAtPathToSavedPhotosAlbum (moviePath, nil, nil, nil);} [[UIApplication sharedApplication] setStatusBarHidden: NON]; [picker dismissViewControllerAnimated: YES achèvement: nil];}
