2012-05-10 6 views
6

Wie kann ich ein YouTube-Video in einer UITableViewCell bekommen, und wie handhabe ich die Done-Schaltfläche der UIWebView Abspielen des Videos?Wie bekomme ich das eingebettete youtube-Video in der Tabellenansicht und bekomme das Problem in der Handhabung "Fertig" Button

Ich habe das Video in einer Ansicht eingebettet, aber wie auf dem Bild. Und ich möchte dieses Done -Schaltfläche in diesem Bild:

Screenshot

Ich möchte einen anderen Bildschirm öffnen, wenn ich zu der Ansicht zurückzukehren, nicht zur vorherigen Ansicht.

-(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]; 
} 

Ich brauche Hilfe mit diesem. Ich habe eine Suche gemacht, aber ich habe nichts bekommen.

+0

Habe ich Sie richtig verstanden - Sie möchten Ihre Tabellenansichtszellen für jedes Youtube-Video darstellen? Vollbild? Warum möchten Sie das tun? –

+0

Ich habe mit dem Tisch fertig und will wissen, wie man den Youtube-Video-Done-Button bedient? – Harish

+0

Schaltfläche Fertig wird nicht angezeigt? Oder reagiere einfach nicht? Hast du die Schaltfläche "Fertig" gedrückt? http://Stackoverflow.com/a/8228490/894671 –

Antwort

0

Da dies für ein bisschen unbeantwortet geblieben ist, dachte ich, ich könnte einen Vorschlag machen. Das Endergebnis ist meiner Meinung nach das gleiche wie das, wonach Sie suchen, aber der Weg dahin ist etwas anders.

Also von meinem Verständnis, wollen Sie eine UITableView-Controller eine Liste von YouTube-Videos anzuzeigen, die beim Klicken auf sie spielen. Hier ist, wie ich dieses Szenario in einer meiner Anwendungen behandelt habe.

  1. Sie müssen einen RSS-Feed von Videos, die Sie wollen, in Ihrer Liste erhalten. Das ist ziemlich einfach ... wenn es für einen Benutzer ist das Format http://www.youtube.com/rss/user/{USERNAME}/videos.rss
  2. Also von dort müssen Sie den RSS-Feed analysieren in eine Liste von Objekten mit Titel, Beschreibung, Miniaturansicht und Link zum Video. All dies ist in der RSS zur Verfügung gestellt und ich NSXMLParser verwendet, um die Arbeit zu erledigen.
  3. Sobald Sie eine nette Liste von Wertobjekten haben, mit denen Sie arbeiten müssen, müssen Sie nur die Tabelle MPMoviePlayerViewController auslösen lassen und die URL übergeben, um den Film abzuspielen.

DidSelectRowAtIndexPath Implementierung

- (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]; 
} 

Hier ist, was die Schnittstelle für meine Video-Klasse wie

@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 

sieht, dass es ziemlich viel ist, eine schöne einfache Möglichkeit, YouTube-Videos in einem anzuzeigen UITableViewController. Ich werde mich nicht mit dem XML-Parsing beschäftigen, da gibt es eine Menge Dokumentation darüber, wie man das macht. Ich habe gerade eine schnelle Google und dieser Blog wird tatsächlich in die Muttern und Schrauben von dem, was ich spreche:

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

Hope this bekommt man gehen. Ich weiß, dass dies nicht darauf abzielt, das Markup in einem WebView zu platzieren, aber ich denke, dass Sie diesen Weg etwas intuitiver finden werden und da es nicht viele Antworten gegeben hat ... hoffentlich wird es Sie zum Laufen bringen.

0

Was Sie tun möchten, beinhaltet Unordnung mit dem Mediaplayer von UIWebView verwendet. Dies kann durch die Überwachung von Benachrichtigungsanzeigen und das Durchlaufen einer Reihe von Unteransichten geschehen, aber es werden private Methoden verwendet und daher wird dies nicht empfohlen, besonders da sich die Art und Weise, wie sich der private Mediaplayer verhält, mit jedem Betriebssystem geändert wird.Ich würde Jerrylroberts Antwort empfehlen und direkte Links zu den YouTube Videos bekommen.

Verwandte Themen