2012-04-04 1 views
0

LoadHtmlString UIWebView funktioniert nicht. Ich möchte dir Tube Video einspielen. Ich habe es mit Embeded HTML-String versucht. Aber einige scheinen kaputt zu sein, ich bekomme einen weißen Bildschirm. Ich habe versucht mit folgendenUIWebView loadHTMLString zum Abspielen der Videodatei

NSString* html = @"<embed id=\"yt\" src=\"http://www.youtube.com/v/6eK-W32IME0?fs=1&hl=en_US&enablejsapi=1\" type=\"application/x-shockwave-flash\" width=\"330\" height=\"200\"></embed>"; 

NSString*html = @"<iframe class=\"youtube-player\" type=\"text/html\" width=\"320\" height=\"460\" src=\"http://www.youtube.com/watch?v=oEn9g4pNW9Y&feature=youtu.be\" frameborder=\"0\"> </iframe>"; 

[videoView loadHTMLString:html baseURL:nil]; 

Aber wird nicht zum Erfolg. Kann mir jemand helfen ? Was habe ich hier falsch gemacht? Dank

Antwort

0

versuchen

- (void)embedYouTube:(NSString*)urls frame:(CGRect)frame { 

    urls=[urls stringByAppendingString:@"&autoplay=1"]; 
    NSString *htmlString =[NSString stringWithFormat: @"<html><head> <meta name = \"viewport\" content = \"initial-scale = 1.0, user-scalable = no, width = 212\"/></head> <body style=\"background:#F00;margin-top:0px;margin-left:0px\"><div><object width=\"212\" height=\"212\"><param name=\"movie\" value=\"%@\">",urls]; 

    NSString *htm2=[NSString stringWithFormat:@"</param><param name=\"wmode\" value=\"transparent\"></param> <embed src=\"%@\"type=\"application/x-shockwave-flash\" wmode=\"transparent\" width=\"212\" height=\"212\"></embed> </object></div></body></html>",urls]; 
// NSString* embedHTML = @"<html><head> </head><body style=\"margin:0\"> <iframe title=\"YouTube video player\" class=\"youtube-player\" type=\"text/html\" width=\"%d\" height=\"%d\" src=\"%@\" frameborder=\"0\" allowFullScreen></iframe> </body></html>"; 

    NSString* html = [NSString stringWithFormat:@"%@%@",htmlString,htm2]; 
    float version = [[[UIDevice currentDevice] systemVersion] floatValue]; 


    if(version<5.0) 
    { 

     NSRange r=[urls rangeOfString:@"v="]; 
     NSRange ran=NSMakeRange(r.location+2, [urls length]-r.location-2); 
     NSString *vid=[urls substringWithRange:ran]; 
    html=[NSString stringWithFormat:@"<embed id=\"yt\" src=\"http://www.youtube.com/watch?v=%@&fs=0\" type=\"application/x-shockwave-flash\" width=\"300\" height=\"300\"></embed>", vid]; 
    } 
    //NSLog(html); 
    if(webView == nil) { 
     webView = [[UIWebView alloc] initWithFrame:frame]; 
     [self.view addSubview:webView]; 
     [webView setDelegate:self]; 
    } 
    [webView loadHTMLString:html baseURL:nil]; 
} 

hoffen, dass es

+0

Dank Daniel für Ihre Hilfe, aber es funktioniert nicht, ich bin immer mmap (size = 2147487744) ist fehlgeschlagen (Fehlercode = 12) *** Fehler: kann nicht Region zuweisen, während ich versuche, mit http://youtu.be/NWCHSD1UKN4 – Mangesh

+0

Es zeigt für zu viel Zeit für Sie die Ansicht zu laden. Wie die App hängt. Kannst du mehr vorschlagen? danke – Mangesh

+0

Danke Daniel Nach einigen Änderungen in meinem eigenen Code und integrieren Sie einen, es funktioniert jetzt Danke ... – Mangesh

1

Beachten Sie hilft, dass diese Art von youtube-Video über UIWebView spielen immer einen weißen Bildschirm auf dem Simulator zeigen. Sie müssen es in einem Gerät testen, um zu wissen, ob es tatsächlich funktioniert.

Viel Glück!

+0

Danke Heliem, ich teste es auf IOS 5.1 Gerät. – Mangesh

1

diesen Code versuchen: Wenn Ihre Tests auf einem amerikanischen iOS

NSString *html = @"\ 
    <html><head>\ 
    <style type=\"text/css\">\ 
    body {\ 
    background-color: transparent;\ 
    color: white;\ 
    }\ 
    </style>\ 
    </head><body style=\"margin:0\">\ 
    <embed id=\"yt\" src=\"http://www.youtube.com/v/6eK-W32IME0?fs=1&hl=en_US&enablejsapi=1\" type=\"application/x-shockwave-flash\" \ 
    width=\"320\" height=\"200\"></embed>\ 
    </body></html>"; 


    // Load the html into the webview 
    [videoView loadHTMLString:html baseURL:nil]; 

Auch habe ich, dass die "youtu.be" nicht richtig funktioniert. Es muss lokalisiert werden.

Mike

+0

Danke Mike .... Ich benutze gleich ... – Mangesh