2012-05-10 10 views
6

Come posso ottenere un video di YouTube in un UITableViewCell e come gestisco il pulsante Done del UIWebView riproduzione del video?Come ottenere il video incorporato di YouTube in tableview e ottenere il problema nella gestione del pulsante "Fatto"

Ho incorporato il video in una vista, ma mi piace sull'immagine. E voglio che questo Done -per in questa immagine:

Screenshot

voglio aprire un altro schermo quando tornerò alla vista, non la vista precedente.

-(void)viewDidLoad { 
    [super viewDidLoad]; 
    videoURL = [[NSString alloc]init]; 
    videoURL [email protected]"http://www.youtube.com/watch?v=aE2b75FFZPI"; 
    [self embedYouTube:videoURL frame:CGRectMake(10, 85, 300, 180)]; 
} 


- (void)embedYouTube:(NSString*)url frame:(CGRect)frame { 
    NSString* embedHTML = @"\ <html><head>\ <style type=\"text/css\">\ body {\ background-color: transparent;\ color: red;\ }\ </style>\ </head><body style=\"margin:0\">\ <embed id=\"yt\" src=\"%@\" type=\"application/x-shockwave-flash\" \ width=\"%0.0f\" height=\"%0.0f\"></embed>\ </body></html>"; 
    NSString* html = [NSString stringWithFormat:embedHTML, url, frame.size.width, frame.size.height]; 
    if (videoView == nil) { 
     videoView = [[UIWebView alloc] initWithFrame:frame]; 
     [self.view addSubview:videoView]; 
     NSLog(@"html%@",html); 
    } 

    [videoView loadHTMLString:html baseURL:nil]; 
} 

Ho bisogno di aiuto con questo. Ho fatto una ricerca, ma non ho ottenuto nulla.

+0

Ho capito bene - Vuoi che le tue celle tableview rappresentino ogni video di youtube? a schermo intero? perché vuoi farlo? –

+0

Ho finito con il tavolo E voglio sapere come gestire il pulsante del video fatto su YouTube? – Harish

+0

Il pulsante Fine non viene visualizzato? O semplicemente non rispondendo? Hai provato le notifiche del pulsante Fine? http://stackoverflow.com/a/8228490/894671 –

risposta

0

Dal momento che questo non ha risposto per un po ', ho pensato di offrire un suggerimento. Il risultato finale credo sia lo stesso di quello che stai cercando, ma il percorso per arrivarci è un po 'diverso.

Quindi dalla mia comprensione, si desidera un controller UITableView per visualizzare un elenco di video di YouTube riprodotti quando si fa clic su di essi. Ecco come ho gestito questo scenario in una delle mie applicazioni.

  1. È necessario ottenere un feed RSS dei video desiderati nell'elenco. È abbastanza semplice ... se è per un utente il formato è http://www.youtube.com/rss/user/{USERNAME}/videos.rss
  2. Quindi da lì è necessario analizzare il feed RSS in una lista di oggetti che hanno un titolo, una descrizione, una miniatura e un link al video. Tutto questo è fornito nell'RSS e io ho usato NSXMLParser per fare il lavoro.
  3. Una volta che hai un bel elenco di oggetti valore con cui lavorare, tutto quello che devi fare è far sparare il tavolo a MPMoviePlayerViewController e passargli l'URL per riprodurre il film.

Attuazione didSelectRowAtIndexPath

- (void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    /** self.items is just a mutable array of video objects that is the underlying 
     datasource for the table. The Video object is just a simple value object 
     I created myself */ 
    Video *video = [self.items objectAtIndex:[indexPath row]]; 

    MPMoviePlayerViewController *mp = [[MPMoviePlayerViewController alloc] initWithContentURL:[NSURL URLWithString:video.video]]; 

    [self presentMoviePlayerViewControllerAnimated:mp]; 

    [mp release]; 
} 

Ecco cosa l'interfaccia per la mia classe video assomiglia

@interface Video : NSManagedObject { 

@property (nonatomic, retain) NSString * title; 
@property (nonatomic, retain) NSString * link; 
@property (nonatomic, retain) NSString * comments; 
@property (nonatomic, retain) NSString * thumbnail; 
@property (nonatomic, retain) NSString * pubDate; 
@property (nonatomic, retain) NSString * video; 
@property (nonatomic, retain) NSString * guid; 
@property (nonatomic, retain) NSString * desc; 

@end 

Questo è più o meno di esso, un modo semplice bello da mostrare i video di YouTube in un UITableViewController. Non entrerò nell'analisi XML, c'è una tonnellata di documentazione là fuori su come farlo. Ho appena fatto una rapida di Google e questo blog diventa realtà nei dadi e bulloni di cosa sto parlando:

http://useyourloaf.com/blog/2010/10/16/parsing-an-rss-feed-using-nsxmlparser.html

Spero che questo ti fa andare. So che questo non affronta il markup in una WebView, ma penso che troverai questo modo un po 'più intuitivo e poiché non ci sono state molte risposte ... speriamo che ti rimetta in piedi e funzionante.

0

Quello che stai cercando è di fare scherzi con il mediaplayer utilizzato da UIWebView. Questo può essere fatto monitorando le notifiche di uiviewanimation e poi passando attraverso una serie di sottoview, ma implicherà l'uso di metodi privati ​​e quindi non è raccomandato in particolare dal modo in cui il lettore multimediale privato si comporta cambiamenti con ciascun sistema operativo.Consiglierei di utilizzare la risposta di jerrylroberts e di ottenere collegamenti diretti ai video di YouTube.

Problemi correlati