Bonnes feuilles : Développer pour l'Iphone et l'Ipad Je suis un iPod vidéo !

Deux solutions sont possibles pour utiliser la vidéo dans une application :

 soit mettre en œuvre la balise <video> dans une page HTML 5, prise en charge par UIWebView. Sur un iPad, la première image de la vidéo s'affiche dans le cadre défini par cette balise et la vidéo est jouée dans ce cadre. Sur un iPhone ou un iPod, le cadre contient le bouton de lancement permettant de visualiser la vidéo en plein écran. La balise <video> et sa mise en oeuvre dans Safari sont décrites dans le guide :
[12-5] Safari Guide to HTML5 Audio and Video

 soit créer un "player" natif avec le framework MediaPlayer qui doit alors être ajouté au projet.

Dans ce framework, la classe MPMoviePlayerController permet de jouer :

 par défaut en mode plein écran ;

 dans une vue fournie par la propriété view ce contrôleur à partir de la version 3.2. Cette vue est alors incluse à l'endroit souhaité dans votre hiérarchie de visualisation.

L'exemple MoviePlayer montre l'utilisation de cette classe et nous présentons des extraits de la classe MoviePlayerAppDelegate de cet exemple pour illustrer l'API de la classe MPMoviePlayerController.

Les formats supportés sont H.264 Baseline Profile niveau 3.0 video, jusqu'à 640 × 480 à 30 images/s et MPEG-4 Part 2 video.

Pour jouer un film, on utilise donc une instance de la classe MPMoviePlayerController en lui fournissant un film intégré dans le bundle de l'application, disponible dans un dossier local ou accessible via un URL. Une fois que le film est chargé, on lance son exécution par la méthode play. C'est ce que fait la méthode initAndPlayMovie: de la classe MoviePlayerAppDelegate :

 -(void)initAndPlayMovie:(NSURL *)movieURL
{
// Initialize a movie player object with the specified URL
MPMoviePlayerController *mp =
[[MPMoviePlayerController alloc] initWithContentURL:movieURL];
if (mp)
{
// démarrer la lecture dès que le chargement est suffisamment
// avancé
[self.moviePlayer play];
}
}


Les contrôles standard permettent à l'utilisateur d'arrêter l'exécution du film mais on peut aussi l'arrêter par programmation par la méthode stop. Dans ce cas, le film est caché et une nouvelle invocation de play reprend le film au début (il s'agit bien d'un arrêt du film et non d'une pause).

La propriété backgroundView donne accès à la vue par-dessus laquelle la vidéo est jouée. Il est possible de modifier les attributs de cette vue et d'y ajouter des sous-vues pour personnaliser l'affichage de la vidéo.

D'autres propriétés déterminent la taille et le mode de démarrage ou de répétition de la vidéo. Toute une série de notifications sont également disponibles pour suivre l'évolution de l'affichage de la vidéo.