【问题标题】:Play Youtube video in iPhone在 iPhone 中播放 Youtube 视频
【发布时间】:2011-02-05 07:36:15
【问题描述】:

我想在我的 iPhone 模拟器中运行来自 youtube 的视频,视频的 URL 是这样的

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

但我仍然无法播放视频

请帮忙

【问题讨论】:

  • 我只能看到一个白色的视图,仅此而已
  • 您需要创建将播放视频的有效 html,即使用

标签: iphone objective-c xcode uiwebview


【解决方案1】:

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

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

【讨论】:

  • 但就使用 UIApplication 而言,我觉得使用此代码后,您将无法控制您的应用程序。我还收到一条消息,说 safari 不能 dwld 这个视频
  • 它切换到 youtube 应用程序。您可能在模拟器中收到了该消息;你应该在设备上测试一下。
  • 字;您可能还想尝试接受更多关于 SO 的答案,人们更愿意帮助那些接受率高的人。
【解决方案2】:

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

      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 或类似工具找到 URL。

【讨论】:

    【解决方案3】:

    嘿,使用 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];  
    

    【讨论】:

      猜你喜欢
      • 2011-09-18
      • 1970-01-01
      • 2012-08-25
      • 2011-05-29
      • 2011-11-29
      • 2013-07-28
      • 1970-01-01
      • 2014-05-01
      • 2012-03-17
      相关资源
      最近更新 更多