在iPhone中播放Youtube视频

时间:2011-02-05 07:36:15

标签: iphone objective-c xcode uiwebview

我想从youtube运行我的iPhone模拟器,视频的网址是

http://www.youtube.com/v/zL0CCsdS1cE

但是我无法将此视频加载到我的iPhone中,我正在使用webview来显示此视频,而这里是执行该操作的代码

objwebView = [[UIWebView alloc]initWithFrame:self.view.bounds];
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:tempString]];
[objwebView loadRequest:request];

基于答案,我尝试了下面的代码,这是我的代码的新版本

mywebView = [[UIWebView alloc]initWithFrame:self.view.bounds];

NSString *youTubeURL = @"http://www.youtube.com/v/zL0CCsdS1cE";

NSString *htmlString = [NSString stringWithFormat:@"<body style=\"margin:0;background-color:#222222;\"><div style=\"padding:%i;width:%i;height:%i;background-color:#ffffff;\"><video width=\"%i\" height=\"%i\" controls=\"\" autoplay=\"\" tabindex=\"0\"><source src=\"%@\"></source></video></div></body>",10, (int)(self.view.bounds.size.width), (int)(self.view.bounds.size.height), 320, 480,youTubeURL];

[mywebView loadHTMLString:htmlString baseURL:nil];
[self.view addSubview:mywebView];

但我仍然无法播放视频

plz help

3 个答案:

答案 0 :(得分:1)

我发现加载HTML字符串非常方便。基本上就是这样(根据您的需要替换变量,并在显示视频时填写youtube加载的视频的网址为.mp4):

      NSString *htmlString = [NSString stringWithFormat:
    @"<body style=\"margin:0;background-color:#222222;\">
    <div style=\"padding:%i;width:%i;height:%i;background-color:#ffffff;\">
        <video width=\"%i\" height=\"%i\" controls=\"\" autoplay=\"\" tabindex=\"0\">
    <source src=\"%@\"></source>
        </video>
    </div>
    </body>",
     (int)margin, 
(int)(self.frame.size.width), 
(int)(self.frame.size.height), 
(int)videoWidth, 
(int)videoHeight, 
aURL];
        [objwebView loadHTMLString:htmlString baseURL:nil];

您可以使用Charles Debugging Proxy或类似的东西找到该网址。

答案 1 :(得分:1)

根据this reference,只需将链接填充为NSURL[[UIApplication sharedApplication] openURL:myLink]即可将YouTube应用打开到指定的视频。

请注意,模拟器没有iPhone应用程序,因此这可能仅适用于设备。

答案 2 :(得分:0)

嘿使用iframe,它会在模拟器和设备中播放视频......实现它是这样的:

NSString *newHTML = @"<html>\
<style>body{padding:0;margin:0;}</style>\
<iframe width=\"640\" height=\"390\" src=\"http://www.youtube.com/embed/zL0CCsdS1cE\" frameborder=\"0\" allowfullscreen></iframe>\
</html>";
[mywebView loadHTMLString:newHTML baseURL:nil];