【问题标题】:iPhone play youtube video in web viewiPhone 在网络视图中播放 youtube 视频
【发布时间】:2012-08-25 22:56:17
【问题描述】:

我无法播放这种格式的视频。

http://www.youtube.com/embed/lNOMZoF9VlM?rel=0

我的 html 字符串。

NSString *html = [NSString stringWithFormat:@"<html><head>\
                              <body style=\"margin:0\">\
                              <embed id=\"yt\" src=%@ type=\"application/x-shockwave-flash\" \
                              width=\"120\" height=\"120\"></embed>\
                              </body></html>",str];

请回复。

【问题讨论】:

  • 请尝试更好地解释它。如果您得到,请输入您正在使用的代码和错误消息。

标签: iphone html ios5 uiwebview


【解决方案1】:

您无法在 WebView 中将 youtube 视频直接播放到您的 iPhone。首先您需要转换成嵌入的 HTML,然后您就可以轻松播放 youtube 视频了。

            UIWebView *webview=[[UIWebView alloc] initWithFrame:CGRectMake(vid.x_Pos, vid.y_Pos, vid.width,vid.height)];
            webview.backgroundColor = [UIColor clearColor];

            embedHTML = @"\
            <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/embed/lNOMZoF9VlM?rel=0\" type=\"application/x-shockwave-flash\" \
            width=\"%0.0f\" height=\"%0.0f\"></embed>\
            </body></html>";

            NSString *html = [NSString stringWithFormat:embedHTML, vid.width, vid.height];
            [webview loadHTMLString:html baseURL:nil];

            [portraitView addSubview:webview];
            [webview release];

如果您还有其他问题,请告诉我。

【讨论】:

  • NSString *html = [NSString stringWithFormat:@"\\ \ \ youtube.com/embed/lNOMZoF9VlM?rel=0\"type=\" application/x-shockwave-flash\" \width=\"120\" height=\"120\">\"];
  • [webview loadHTMLString:str baseURL:nil];
【解决方案2】:

我实现了一个 Youtube 视图,如下所示。重要的是,这只能与 youtube 的 embed-url 的 url 字符串一起使用,它应该如下所示:

<iframe width="420" height="315" src="http://www.youtube.com/embed/ntQDyLpoLWM" frameborder="0" allowfullscreen></iframe>

(上面的所有代码都包含type="application/x-shockwave-flash"会不会是个问题?)

这是我的代码:

#import "YoutubeView.h"

@implementation YoutubeView

- (id)initWithFrame:(CGRect)frame andURL:(NSString *)url
{
  self = [super initWithFrame:frame];
  if (self) 
  {
    urlString = [url retain];
    webView = [[UIWebView alloc] initWithFrame:self.bounds];
    [webView.scrollView setBounces:NO];
    [self addSubview:webView];
  }
  return self;
}

-(void)layoutSubviews
{
  webView.frame = self.bounds;
  NSMutableString *html = [[NSMutableString alloc] init];
  [html appendString:@"<html>"];
  [html appendString:@"<head>"];
  [html appendString:@"<meta name=\"viewport\" content=\"initial-scale=1.0, user-scalable=no\">"];
  [html appendString:@"</head>"];
  [html appendString:@"<body style=\"border:0; margin:0; padding:0;\">"];
  [html appendFormat:@"<iframe width=\"%d\" height=\"%d\" src=\"%@\" frameborder=\"0\" allowfullscreen>", (int) roundf(self.bounds.size.width), (int) roundf(self.bounds.size.height), urlString];
  [html appendString:@"</iframe>"];
  [html appendString:@"</body>"];
  [html appendString:@"</html>"];
  [webView loadHTMLString:html baseURL:nil];
  [html release];
}

-(void)dealloc
{
  [webView release];
  [urlString release];
  [super dealloc];
}

@end

【讨论】:

    【解决方案3】:

    试试这个对我有用...

        CGRect frame = CGRectMake(40, 55, width, height);
    
    
        NSString *embedHTML =[NSString stringWithFormat:@"\
                              <html><head>\
                              <style type=\"text/css\">\
                              body {\
                              background-color: transparent;\
                              color: blue;\
                              }\
                              </style>\
                              </head><body style=\"margin:0\">\
                              <iframe height=\"220\" width=\"400\" src=\"http://www.youtube.com/embed/lNOMZoF9VlM\"></iframe>\
                               </body></html>"];
    
        webview = [[UIWebView alloc] initWithFrame:frame];
    
        webview.backgroundColor = [UIColor clearColor];
    
        webview.scrollView.scrollEnabled =NO;
    
        [webview loadHTMLString:embedHTML baseURL:nil];
    
        [self.view addSubview:webview];
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-08-09
      • 2016-02-03
      • 1970-01-01
      • 1970-01-01
      • 2011-09-18
      • 2014-05-01
      • 2014-02-12
      • 1970-01-01
      相关资源
      最近更新 更多