2012-05-10 5 views
6

¿Cómo puedo obtener un YouTube video en un UITableViewCell, y cómo puedo manejar la Done -botón del UIWebView la reproducción del vídeo?cómo obtener el vídeo en youtube tableview y obtener el problema con la gestión "Hecho" incrustado botón

He incrustado el video en una vista, pero me gusta en la imagen. Y quiero que esto Done -botón en esta imagen:

Screenshot

quiero abrir otra pantalla cuando regrese a la vista, no la vista anterior.

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

Necesito ayuda con esto. Hice una búsqueda, pero no obtuve nada.

+0

¿Te entendí correctamente? ¿Quieres que las celdas de tu mesa representen cada video de youtube? ¿pantalla completa? ¿por qué quieres hacer eso? –

+0

He terminado con la tabla y quiero saber cómo manejar el botón de youtube video done? – Harish

+0

¿No aparece el botón Listo? ¿O simplemente no responde? ¿Has probado las notificaciones del botón Listo? http://stackoverflow.com/a/8228490/894671 –

Respuesta

0

Como esto no ha respondido por un tiempo, pensé que podría ofrecer una sugerencia. El resultado final, creo, es el mismo que el que está buscando pero el camino para llegar es un poco diferente.

Por lo que entiendo, usted quiere que un controlador UITableView muestre una lista de videos de YouTube que se reproducen al hacer clic en ellos. Así es como manejé este escenario en una de mis aplicaciones.

  1. Necesita obtener una fuente RSS de los videos que desea en su lista. Eso es bastante fácil ... si es para un usuario, el formato es http://www.youtube.com/rss/user/{USERNAME}/videos.rss
  2. Por lo tanto, a partir de ahí debe analizar el canal RSS en una lista de objetos que tienen un título, una descripción, una miniatura y un enlace al video. Todo esto se proporciona en el RSS y usé NSXMLParser para hacer el trabajo.
  3. Una vez que tenga una buena lista de objetos de valor para trabajar, todo lo que tiene que hacer es hacer que la tabla se inicie en MPMoviePlayerViewController y pasarle la URL para reproducir la película.

Implementación 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]; 
} 

Esto es lo que la interfaz para mi clase de vídeo se ve como

@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 

Eso es prácticamente todo, una manera fácil bueno para mostrar vídeos de YouTube en una UITableViewController. No entraré en el análisis de XML, hay una gran cantidad de documentación sobre cómo hacerlo. Acabo de hacer una rápida google y este blog realmente se mete en los detalles prácticos de lo que estoy hablando:

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

Esperanza este consigue que va. Sé que esto no aborda la colocación del marcado en WebView, pero creo que lo encontrarás de una manera un poco más intuitiva y ya que no ha habido muchas respuestas ... con suerte lo pondrá en marcha.

0

Lo que estás buscando hacer es jugar con el reproductor de medios utilizado por UIWebView. Esto se puede hacer monitoreando las notificaciones de animación y luego pasando por un montón de subvistas, pero implicará el uso de métodos privados y, por lo tanto, no se recomienda especialmente dado que la forma en que se comporta el reproductor privado cambia con cada sistema operativo.Recomendaría utilizar la respuesta de jerrylroberts y obtener enlaces directos a los videos de YouTube.

Cuestiones relacionadas