2009-10-24 12 views
5

Soy un novato en el desarrollo de iPhone y recién comencé a desarrollar una aplicación que contiene una UITableView donde cada celda consiste en miniaturas de videos de YouTube en forma de vistas de la web. Para incrustar YouTube Player en iPhone, he usado el siguiente código.¿Cómo se reproduce YouTube Movie en una aplicación de iPhone cuando se toca en UITableViewCell?

- (void)embedYouTube:(NSString*)url frame:(CGRect)frame { 
NSString* embedHTML = @"\ 
    <html><head>\ 
<style type=\"text/css\">\ 
body {\ 
background-color: transparent;\ 
color: white;\ 
}\ 
</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]; 
} 
[videoView loadHTMLString:html baseURL:nil]; 

}

Ahora que puedo ver la miniatura en el tableviewcell y una vez que toque en la uña del pulgar, reproductor de YouTube abre y reproducir la película.

Mi miniatura ocupa solo una pequeña parte de la celda y el resto del área de la celda contiene algunas descripciones de texto. Mi problema es que debo tocar exactamente en la miniatura para que la película se reproduzca. Si toco en otro lugar de la celda, no se reproducirá porque mi miniatura no se extiende por toda la celda.

¿No hay una manera de hacer que la película se reproduzca en didSelectRowAtIndexPath? He visto que algunos chats sugieren usar Javascript pero nadie parece tener una idea sobre la forma correcta de usarlo para este problema.

Agradezca mucho si alguien puede ayudar.

+0

Para que quede claro, ¿quieres saber cómo controlar la reproducción de películas de youtube? Más específicamente al hacer algo como un evento de clic fuera del contexto de uno que está jugando? – Spoike

Respuesta

3

Sugiero que eche un vistazo a YouTube APIs y trate de descubrir cuál es su problema real. pero otro buen enlace es How To Play YouTube Videos Within an Application. Espero que te esté ayudando.

+0

gracias Nathan por su respuesta rápida. De hecho, he revisado el enlace que publicaste hace unos días. Déjame ser claro aquí. No tengo ningún problema para reproducir el video. Todo lo que necesito es hacer que funcione cuando toco en otra parte de la celda. Incluso en el blog de la API de youtube, nadie parece haber respondido eso. – suranga

+0

@suranga: debe editar su pregunta y aclararla para que la gente sepa rápidamente cuál es su problema – Spoike

+0

@suranga: eche un vistazo a ese segundo enlace, por favor. –

0

No es tal vez la mejor solución, pero funciona:

//get your UIWebview in tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
//... 

videoView.mediaPlaybackRequiresUserAction = NO; 
[videoView loadHTMLString:[self generateHtmlEmbedYouTube] baseURL:nil]; 

Desde el Documentation

mediaPlaybackRequiresUserAction:

Un valor booleano que determina si los videos HTML5 puede jugar automáticamente o requiere que el usuario comienza a jugarlos.

El único problema con esta solución es que tiene que volver a cargar su UIWebView.

Cuestiones relacionadas