0

LoadHtmlString UIWebView が機能していません。埋め込まれたyou tube動画を再生したいです。埋め込み HTML 文字列を試してみました。しかし、一部が壊れているようで、白い画面が表示されます。私は次のようにしてみました

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

しかし、成功しません。誰でも私を助けることができますか?私はここで何をしましたか?ありがとう

4

3 に答える 3

1

このコードを試してください:

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

また、アメリカの iOS でテストすると、「 youtu.be」が正しく動作しないことがわかりました。ローカライズする必要があります。

マイク

于 2012-04-04T20:58:33.657 に答える
1

この種の youtube ビデオを再生するUIWebViewと、常にシミュレーターに白い画面が表示されることに注意してください。実際に機能するかどうかを確認するには、デバイスでテストする必要があります。

幸運を!

于 2012-04-04T17:53:14.337 に答える
0

試す

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

それが役に立てば幸い

于 2012-04-04T17:50:36.647 に答える