usar una vista web para reproducir videos de YouTube en la aplicación iphone

Estoy intentando ver videos en mi aplicación de iPhone usando el siguiente código:

-(void) viewDidLoad{ [super viewDidLoad]; UIWebView *webView = [[UIWebView alloc]initWithFrame:self.view.frame]; NSString *youTubeVideoHTML = @"<html><head>\ <body style=\"margin:0\">\ <embed id=\"yt\" src=\"%@\" type=\"application/x-shockwave-flash\" \ width=\"%0.0f\" height=\"%0.0f\"></embed>\ </body></html>"; // Populate HTML with the URL and requested frame size NSString *html = [NSString stringWithFormat:youTubeVideoHTML,@"http://www.youtube.com/watch?v=ZiIcqZoQQwg" , 100, 100]; // Load the html into the webview [webView loadHTMLString:html baseURL:nil]; [self.view addSubview:webView]; } 

¿Alguien puede decirme qué estoy haciendo mal? ¡He visto esto en un par de ejemplos, pero aún así no puedo resolverlo!

Parece que tu cadena HTML no está formada correctamente.

Prueba esto:

 - (void)viewDidLoad { [super viewDidLoad]; float width = 200.0f; float height = 200.0f; NSString *youTubeURL = @"http://www.youtube.com/watch?v=ZiIcqZoQQwg"; UIWebView *webView = [UIWebView new]; webView.frame = CGRectMake(60, 60, width, height); NSMutableString *html = [NSMutableString string]; [html appendString:@"<html><head>"]; [html appendString:@"<style type=\"text/css\">"]; [html appendString:@"body {"]; [html appendString:@"background-color: transparent;"]; [html appendString:@"color: white;"]; [html appendString:@"}"]; [html appendString:@"</style>"]; [html appendString:@"</head><body style=\"margin:0\">"]; [html appendFormat:@"<embed id=\"yt\" src=\"%@\" type=\"application/x-shockwave-flash\"", youTubeURL]; [html appendFormat:@"width=\"%0.0f\" height=\"%0.0f\"></embed>", width, height]; [html appendString:@"</body></html>"]; [webView loadHTMLString:html baseURL:nil]; [self.view addSubview:webView]; } 

Vale la pena señalar que este código solo funcionará en un dispositivo, no funcionará en el simulador.

ACTUALIZAR…

Debido a los cambios realizados por YouTube, el método anterior ahora es incorrecto. Use el método a continuación en su lugar.

 - (void)viewDidLoad { [super viewDidLoad]; float width = 200.0f; float height = 200.0f; NSString *youTubeToken = @"K95Q0VFyhA8"; UIWebView *wv = [UIWebView new]; webView.frame = CGRectMake(60, 60, width, height); NSMutableString *html = [NSMutableString string]; [html appendString:@"<html>"]; [html appendString:@"<head>"]; [html appendString:@"<style type=\"text/css\">"]; [html appendString:@"body {"]; [html appendString:@"background-color: transparent;"]; [html appendString:@"color: white;"]; [html appendString:@"margin: 0;"]; [html appendString:@"}"]; [html appendString:@"</style>"]; [html appendString:@"</head>"]; [html appendString:@"<body>"]; [html appendFormat:@"<iframe id=\"ytplayer\" type=\"text/html\" width=\"%0.0f\" height=\"%0.0f\" src=\"http://www.youtube.com/embed/%@\" frameborder=\"0\"/>", width, height, videoToken]; [html appendString:@"</body>"]; [html appendString:@"</html>"]; [wv loadHTMLString:html baseURL:nil]; [self.view addSubview:wv]; } 

Tengo el mismo problema. Resolví esto siguiendo el método.

Reemplace el YouTube Use http://www.youtube.com/v/XXXXXXX

en lugar de http://www.youtube.com/watch?v=XXXXXXX

testing este simple:

 //get the youtube video token from youtube url //https://www.youtube.com/watch?v=youTubeToken NSString *youTubeToken = @"K95Q0VFyhA8"; //create webview.. UIWebView *webView = [UIWebView new]; webView.frame = CGRectMake(10, 10, 300, 300); //load webview with the load request.. [webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:[NSString stringWithFormat:@"https://www.youtube.com/embed/%@",youTubeToken]]]]; [self.view addSubview:webView];