2012-09-14 654 views
12

Hola tengo una aplicación con vistas web e incrusto video de youtube. Ahora tengo iOS6 instalado pero ya no funcionan.iOS 6 incrustar youtube

¿Alguien ya ha encontrado una solución?

mycode:

- (void)viewDidLoad 
{ 
    [scrollvideoView setScrollEnabled:YES]; 
    [scrollvideoView setContentSize:CGSizeMake(320,2300)]; 
    [scrollvideoView setPagingEnabled:NO]; 

    [super viewDidLoad]; 
    // Do any additional setup after loading the view. 

    //Variabelen 
    NSInteger x1 = 25; 
    NSInteger x2 = 123; 
    NSInteger x3 = 220; 
    NSInteger sz = 75; 

    //Label height rij1 
    NSInteger yt1 = 45; 

    /* de Videos */ 
    //Eerste rij 
    NSInteger y1 = 0; 
    [self embedYouTube:@"http://www.youtube.com/watch?v=MFARZYEGqK8" frame:CGRectMake(x1, y1, sz, sz)]; 
    [self embedYouTube:@"http://www.youtube.com/watch?v=cD7WHGvXqEA" frame:CGRectMake(x2, y1, sz, sz)]; 
    [self embedYouTube:@"http://www.youtube.com/watch?v=8onqmHPBJOo" frame:CGRectMake(x3, y1, sz, sz)]; 

    //Setting de labels 
    UILabel *videoLabel1 = [[UILabel alloc] initWithFrame:CGRectMake(x1, yt1, sz, sz)]; 
    videoLabel1.text = @"Videoclip daor heb ik schijt an"; 
    [self.scrollvideoView addSubview:videoLabel1]; 
    videoLabel1.backgroundColor = [UIColor clearColor]; 
    videoLabel1.font = [UIFont fontWithName:@"Arial" size: 9.0]; 
    videoLabel1.textColor = [UIColor whiteColor]; 

    UILabel *videoLabel2 = [[UILabel alloc] initWithFrame:CGRectMake(x2, yt1, sz, sz)]; 
    videoLabel2.text = @"Videoclip goeie been verkeerde bed"; 
    [self.scrollvideoView addSubview:videoLabel2]; 
    videoLabel2.backgroundColor = [UIColor clearColor]; 
    videoLabel2.font = [UIFont fontWithName:@"Arial" size: 9.0]; 
    videoLabel2.textColor = [UIColor whiteColor]; 

    UILabel *videoLabel3 = [[UILabel alloc] initWithFrame:CGRectMake(x3, yt1, sz, sz)]; 
    videoLabel3.text = @"Wavin flag (giel beelen)"; 
    [self.scrollvideoView addSubview:videoLabel3]; 
    videoLabel3.backgroundColor = [UIColor clearColor]; 
    videoLabel3.font = [UIFont fontWithName:@"Arial" size: 9.0]; 
    videoLabel3.textColor = [UIColor whiteColor]; 

    //Tweede rij 
    NSInteger y2 = 100; 
    [self embedYouTube:@"http://www.youtube.com/watch?v=-cJz3YGRlMI" frame:CGRectMake(x1, y2, sz, sz)]; 
    [self embedYouTube:@"http://www.youtube.com/watch?v=ZdQRcAnPCvk" frame:CGRectMake(x2, y2, sz, sz)]; 
    [self embedYouTube:@"http://www.youtube.com/watch?v=KNcT5O1qk40" frame:CGRectMake(x3, y2, sz, sz)]; 

} 

- (void)embedYouTube:(NSString *)urlString 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, urlString, frame.size.width,`frame.size.height]; 
    UIWebView *videoView = [[UIWebView alloc] initWithFrame:frame]; 
    [videoView loadHTMLString:html baseURL:nil]; 
    [self.scrollvideoView addSubview:videoView]; 
    //[videoView release]; 
} 
+2

leyó la nota lanzamiento de iOS 6. Hay una nota en ella acerca de esto. –

+1

Apple eliminó la aplicación nativa de Youtube, que es lo que realmente implicó la reproducción de videos de YouTube en iOS anterior. Estoy tratando de encontrar un reemplazo, sin suerte todavía. –

+0

¿Has solucionado esto? – Daniel

Respuesta

11

Una gran pregunta y un problema que acabo de notar y estaba buscando la solución.

he encontrado esta cita en el IOS 6 notas de la versión bajo la sección/WebKit de Safari:

A partir de iOS 6, las direcciones URL de YouTube incrustados en forma de http://www.youtube.com/watch?v=oHg5SJYRHA0 ya no va a funcionar. Estas URL son para ver el video en el sitio de YouTube, no para incrustar en páginas web. En su lugar, el formato que se debe utilizar se describe aquí: https://developers.google.com/youtube/player_parameters.

Volviendo al sitio del desarrollador de Google, parece que el reproductor de video debe incrustarse mediante el uso de un iframe, no debería ser demasiado trabajo.

Espero que ayude.

3

Si usted no necesita straigh avance de reproducción automática, a continuación, puede utilizar quizá iframe con botón de reproducción

 <iframe height="90" width="75" src="http://www.youtube.com/embed/VIDEOID"></iframe> 

, cuando se pulsa el botón de reproducción, pantalla completa jugador toma el control (al menos para mis aplicaciones en iOS 6)

Si compila la aplicación con Base SDK 5.1 (5.0) anterior, cualquier tipo de incrustación de YouTube antiguo debería funcionar incluso en iOS 6. Me gusta:

<embed src="http://www.youtube.com/watch?v=VIDEOID" type="application/x-shockwave-flash"  widht="64" height="64"></embed> 
+0

¿qué quieres decir con el kit de desarrollo 5.1 (5.0)? –

+3

Base de datos anterior SDK, he modificado esto para eliminar la confusión. – PetrV

+0

Muchas gracias, lo construí usando 5.0 como base sdk y funcionó –

5

// Qiqi de ayuda que he jugado vídeo de YouTube en iOS 6 como sigue y se está trabajando para mí

// esta es mi URL de youtube: http: //www.youtube.com/watch? V = s9KU-oOa6pA

// VideoId: s9KU-oOa6pA

 CGRect frame = CGRectMake(5,55, 310,200); 
    NSString *embedHTML =[NSString stringWithFormat:@"\ 
          <html><head>\ 
          <style type=\"text/css\">\ 
          body {\ 
          background-color: transparent;\ 
          color: blue;\ 
          }\ 
          </style>\ 
          </head><body style=\"margin:0\">\ 
          <iframe height=\"200\" width=\"310\"  src=\"http://www.youtube.com/embed/s9KU-oOa6pA\"></iframe>\ 
          </body></html>"]; 
    UIWebView *videoView = [[UIWebView alloc] initWithFrame:frame]; 

    videoView.backgroundColor = [UIColor clearColor]; 
    [videoView loadHTMLString:embedHTML baseURL:nil]; 
    [self.view addSubview:videoView]; 
Cuestiones relacionadas