UIWebview中的Youtube视频无法正常工作

时间:2012-08-14 21:12:07

标签: iphone objective-c ios uiwebview youtube

使用此代码在UIWebView中播放YouTube视频

- (void)embedYouTube {

UIWebView *webView = [[[UIWebView alloc] initWithFrame:self.view.bounds] autorelease];
webView.autoresizesSubviews = YES;
webView.autoresizingMask=(UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth); 
// iframe
videoHTML = [NSString stringWithFormat:@"\
             <html>\
             <head>\
             <style type=\"text/css\">\
             iframe {position:absolute; top:50%%; margin-top:-130px;}\
             body {background-color:#000; margin:0;}\
             </style>\
             </head>\
             <body>\
            <iframe width=\"560%%\" height=\"315px\" src=\"%@\"http://www.youtube.com/embed/j9CukQje2qw\" frameborder=\"0\" allowfullscreen></iframe>\
             </body>\
             </html>", videoURL];

             [videoView loadHTMLString:videoHTML baseURL:nil];

}

当我点击此LaunchVideo UIButton时,它在iOS设备上显示黑屏

-(void)LaunchVideo:(id)sender
{
self.videoURL = @"http://www.youtube.com/embed/j9CukQje2qw";

WebViewController *webViewController = [[[WebViewController alloc] initWithNibName:nil bundle:nil] autorelease];

webViewController.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
webViewController.videoURL = self.videoURL;

[self presentModalViewController:webViewController animated:YES];

}

如果有人能指出我在这段代码中遗漏或做错了什么。为什么youtube视频没有显示。不使用以编程方式执行的接口构建器。从网上获得了这个项目代码。在ios设备上尝试了这个项目代码,它适用于该项目,但在我的项目中应用其代码时,它无法正常工作。唯一不同的是他的项目代码来自web使用界面构建器,我正在编程。我不明白。

请帮助解决此代码的错误。

感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

以下是将YouTube视频加载到应用中的另一种方法。首先,将UIWebView放入您的界面并将其大小调整为您希望视频显示的大小(将有一个按钮使其全屏显示),然后为其创建一个IBOutlet,以便您可以更改其隐藏属性(以让它弹出并消失)这是一些代码。在代码中有一个名为webviewshow的方法,这个方法基本上只是说一个简单的方法     webview.hidden = NO;     webviewbutton.hidden = NO; 然后还会弹出一个按钮,当点击时,该按钮会使Web视图消失。以下是将YouTube视频加载到网络视图中的代码

// Create your query ...
    NSString* searchQuery = [NSString stringWithFormat:@"http://www.youtube.com/embed/j9CukQje2qw];

    // Be careful to always URL encode things like spaces and other symbols that aren't URL friendly
    searchQuery = [searchQuery stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding];

    // Now create the URL string ...
    NSString* urlString = searchQuery;

    NSURL *url = [NSURL URLWithString:urlString];
    NSURLRequest *request = [NSURLRequest requestWithURL:url];
    [webView loadRequest:request];

    [webView loadRequest:request]; currentTimer= [NSTimer      scheduledTimerWithTimeInterval:2 target:self selector:@selector(webviewshow) userInfo:nil repeats:NO];;

它会等待2秒(大多数连接的通常等待时间),直到显示Web视图,因此页面已加载,用户无需加载该页面。

然后,当您想要使视频消失时,请创建一个关闭Web视图的方法

- (void) makewebviewGoAway {webview.hidden = YES; webviewbutton.hidden = YES;}

希望这很有帮助。如果您需要进一步的帮助或解释,请发表评论。