Domanda

Ho un cliente che ha dei contenuti video per il web in formato Flash.Il mio compito è quello di aiutarli a mostrare il video in un'app per iPhone.

Mi rendo conto che il primo passo è quello di ottenere questi video nell'apposito formato Quicktime per l'iPhone.

Quindi sto andando per aiutare il cliente a capire come o dove ospitare questi file.Se è difficile presumo che possono essere ospitati su YouTube.

La mia principale preoccupazione, però, è che l'approccio di prendere per lo streaming del video.Quali sono i pro e i contro di MPMoviePlayerController contro il lancio di UIWebView con l'URL dello stream?C'è qualche differenza?È uno di loro, più o meno disposti a perdonare?È uno di loro una migliore esperienza utente?Eventuali incoerenze ci si potrebbe aspettare per eseguire in?

Sto assumendo la riproduzione di video è abbastanza facile su iPhone.È ragionevole provare entrambi e hanno a disposizione, come un ripiego, o sarebbe uno spreco di tempo?Sto cercando di pianificare questo un po', quindi mi piacerebbe sentire il mondo reale e le esperienze di qualcuno che ha fatto questo.

È stato utile?

Soluzione

UIWebView non può di fatto riprodurre video. Navigazione verso una pagina Youtube con un UIWebView semplicemente il lancio di iPhone app YouTube. Fare questo in un certo modo restituirà il controllo per la vostra applicazione, dopo il video viene riprodotto. Vedi qui: http://iphoneincubator.com/blog/tag/uiwebview

Ti consiglio di utilizzare MPMoviePlayer Controller, fino a quando si sta solo facendo semplice streaming. Ecco alcuni esempi di codice per iniziare:

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

Altri suggerimenti


EDIT:Il mio esempio originale in questa risposta, inizializzato il webview con una cornice di CGRectZero.Questo ha funzionato fino a iOS 3.2.Partenza con iOS 4 webview deve avere un telaio diverso da zero, o video, non giocare.Ho modificato il mio esempio riportato di seguito per riflettere questo cambiamento.


Accettato risposta qui non è preciso.È possibile infatti utilizzare UIWebView per lo streaming di video, e in un certo senso è meglio che MPMoviePlayerController.Se ti dico UIWebView per la richiesta di un file video (ad es.un mp4) via loadRequest:, si aprirà una nuova finestra e in streaming il video all'interno della vostra app.A differenza di MPMoviePlayerController, la finestra video creato da UIWebView può essere ruotato per l'orientamento orizzontale o verticale.Quando il video si conclude, l'utente può chiudere questa finestra e tornare alla vostra applicazione.


EDIT 2:Dal momento che ora è possibile implementare un lettore video che ruota utilizzando MPMoviePlayerViewController, non riesco più a pensare ad un motivo per utilizzare UIWebView per i video utilizzando la tecnica descritta in questa risposta.


Suggerimento:Dal UIWebView crea la sua propria finestra per riprodurre il video, non c'è nemmeno bisogno di aggiungere la UIWebView alla vista della gerarchia.Si può semplicemente creare l'oggetto UIWebView e chiamare loadRequest:per riprodurre i video senza mai passare l'oggetto 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];
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top