0

使用此代码在 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 项目代码使用了界面生成器,而我正在以编程方式进行操作。我不明白。

请帮助此代码有什么问题。

感谢帮助。

4

1 回答 1

2

这是将 youtube 视频加载到您的应用程序中的另一种方法。首先,将 UIWebView 放入您的界面并将其调整为您希望视频显示的大小(将有一个按钮使其全屏显示),然后为其制作一个 IBOutlet,以便您可以更改其隐藏属性(到让它弹出并消失)这是一些代码。在代码中使用了一个名为 webviewshow 的方法,它调用了一个简单的方法,基本上只是说 webview.hidden = NO; webviewbutton.hidden = 否;然后还有一个按钮,当点击时,它也会弹出一个按钮,使 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 视图,因此页面已加载,用户无需观看加载。

然后当你想让视频消失时,像这样关闭网络视图

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

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

于 2012-08-15T01:19:25.010 回答