Question

J'ai un client qui a un contenu vidéo pour le web au format Flash. Ma tâche est d'aider à montrer les vidéos dans une application iPhone.

Je me rends compte que la première étape est d'obtenir ces vidéos dans le format approprié Quicktime pour l'iPhone.

Alors je vais devoir aider à la figure client comment ou où héberger ces fichiers. Si c'est difficile, je suppose qu'ils peuvent être hébergés sur YouTube.

Mon souci principal, cependant, est l'approche à prendre pour diffuser la vidéo. Quels sont les avantages et les inconvénients de MPMoviePlayerController contre le lancement UIWebView avec l'URL du flux? Y at-il la différence? Est-ce un d'entre eux plus ou moins indulgent? Est-ce l'un d'eux une meilleure expérience utilisateur? Toute gotchas je pourrais attendre à courir dans?

Je suppose que le jeu vidéo est assez facile sur l'iPhone. Est-il raisonnable d'essayer les deux et avoir un disponible comme solution de repli, ou serait-ce une perte de temps? Je suis en train de planifier ce un peu, donc je serais ravi d'entendre les expériences du monde réel de quelqu'un qui a fait cela.

Était-ce utile?

La solution

UIWebView ne peut pas réellement lire des vidéos. Navigation vers une page Youtube avec un UIWebView simplement lancer App Youtube de l'iPhone. Faire cela une certaine façon retournera le contrôle de votre application après la vidéo est lue. Voir ici: http://iphoneincubator.com/blog/tag/uiwebview

Je recommande l'utilisation du contrôleur MPMoviePlayer, aussi longtemps que vous ne faites que le streaming simple. Voici quelques exemples de code pour démarrer:

NSString *url = @"http://www.example.com/path/to/movie.mp4";
MPMoviePlayerController *moviePlayer = [[MPMoviePlayerController alloc]
                                        initWithContentURL:[NSURL URLWithString:url]];
[moviePlayer play];

Autres conseils


EDIT: Mon exemple original dans cette réponse initialisée WebView avec un cadre de CGRectZero. Cela a fonctionné jusqu'à iOS 3.2. A partir de iOS 4 WebView doit avoir un cadre différent de zéro ou la vidéo ne fonctionne pas. J'ai édité mon exemple ci-dessous pour refléter ce changement.


La réponse acceptée ici est pas exacte. Vous pouvez en effet utiliser UIWebView pour diffuser des vidéos, et à certains égards, il est mieux que MPMoviePlayerController. Si vous dites UIWebView pour demander un fichier vidéo (par exemple un mp4) par l'intermédiaire loadRequest :, il ouvrira une nouvelle fenêtre et flux vidéo au sein de votre application. Contrairement à MPMoviePlayerController, la fenêtre vidéo créée par UIWebView peut être orienté en mode paysage ou portrait. Lorsque la vidéo se termine, l'utilisateur peut fermer cette fenêtre et revenir à votre application.


EDIT 2:. Comme vous pouvez désormais mettre en œuvre un lecteur vidéo qui tourne à l'aide MPMoviePlayerViewController, je ne peux plus penser à une raison d'utiliser UIWebView pour des vidéos en utilisant la technique décrite dans cette réponse


Astuce: Depuis UIWebView crée sa propre fenêtre pour lire la vidéo, vous ne même pas besoin d'ajouter le UIWebView à votre hiérarchie de la vue. Vous pouvez juste créer l'objet UIWebView et appelez loadRequest: pour lire la vidéo sans jamais passer l'objet à addSubview:.

self.webView = [[[UIWebView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]] autorelease];
NSURL *url = [NSURL URLWithString:@"http://www.jonathancoulton.com/music/thingaweek/CodeMonkey.mp3"];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
[webView loadRequest:request];
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top