89

我正在尝试使用 MPMoviePlayerController 流式传输一些 YouTube 视频,但我遇到了一些问题。我使用的代码非常简单,我可以通过将 URL 传递给 initWithContentURL 来播放 .m4v 视频。当我启动电影播放器​​时,播放器会出现,但大约 20 秒后就会消失。当我在模拟器中尝试它时,我得到一个警告视图,指出服务器配置不正确。是否需要通过 URL 传递参数以从 google 获取特定类型的视频提要?

NSURL *videoURL = [NSURL URLWithString:@"http://www.youtube.com/v/HGd9qAfpZio&hl=en_US&fs=1&"];
MPMoviePlayerController *moviePlayer;
moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:videoURL];

[moviePlayer play];

我还尝试了以下 URL 的 http://www.youtube.com/watch?v=HGd9qAfpZio

我还看到了参数 &format=1 并尝试将其添加到两个字符串的末尾,但没有运气。

4

8 回答 8

78

在您自己的应用程序中播放 youtube 视频的唯一方法是UIWebView使用 Youtube 的 embed 标签为您想要作为UIWebView's内容播放的电影创建一个。UIWebView将检测到嵌入的对象是 Youtube 链接,并且 web 视图的内容将是视频的 youtube 预览。当您的用户单击预览时,视频将显示在 MPMoviePlayerController 中。这是 Muxecoid 提供的链接中描述的技术(如何在应用程序中播放 youtube 视频),这是(据我所知)在应用程序中播放 youtube 视频的唯一方法。您仍然可以通过将 youtube URL 传递给 来启动 Youtube 应用程序-[UIApplication openURL:],但这当然会关闭您自己的应用程序,这通常是不可取的。

不幸的是,没有办法直接播放 youtube 视频,MPMoviePlayerController因为 youtube 不公开视频文件的直接链接。

于 2009-11-23T05:06:38.943 回答
26

如果您使用的是代码:

- (void)embedYouTube:(NSString*)url frame:(CGRect)frame {  
     NSString* embedHTML = @"\ 
        <html><head>\ 
     <style type=\"text/css\">\ 
     body {\ 
     background-color: transparent;\ 
     color: white;\ 
    }\ 
   </style>\ 
    </head><body style=\"margin:0\">\ 
       <embed id=\"yt\" src=\"%@\" type=\"application/x-shockwave-flash\" \ 
    width=\"%0.0f\" height=\"%0.0f\"></embed>\ 
       </body></html>";  
   NSString* html = [NSString stringWithFormat:embedHTML, url, frame.size.width, frame.size.height];  
   if(videoView == nil) {  
      videoView = [[UIWebView alloc] initWithFrame:frame];  
     [self.view addSubview:videoView];  
    }  
    [videoView loadHTMLString:html baseURL:nil];  
  }

来源:

只需参考此链接

确保在设备上而不是在模拟器上测试它。由于模拟器将始终显示带有蓝色框的问号(它没有快速播放器)。

于 2010-07-13T21:33:08.763 回答
23

正如我在上面的评论中所写的,我必须在我正在从事的项目中这样做。我已经解决了这个问题并在github上提交了代码。

你可以在这里查看源代码并 fork 。

它基本上需要一个 youtube 网址并获取所有与 iOS 兼容的视频网址。

希望这对您有帮助!
干杯

于 2012-06-08T11:42:12.577 回答
12

我刚刚偶然发现有人能够将YouTube视频放入MPMoviePlayerController. 现在看来确实有可能。

LBYouTube 观看

于 2012-06-01T12:52:48.707 回答
2

要播放您的视频,您需要先提取 url,然后再将 url 传递到MPMoviePlayer. 不能直接播放。

我的 github repo 有一个演示实现。

看:

https://github.com/DpzAtMicRO/IOSYoutubePlayer

试试看,这可以MPMoviePlayer像任何其他视频一样直接加载和播放 youtube 视频,这也是一个很好的方法。

编辑:在您的项目中使用它之前,请确保您仔细阅读 Readme.md

于 2012-12-05T09:16:07.430 回答
1

就像将 iframe 的 src 元素用于新的嵌入代码并调用一样简单

[self.webView loadRequest:[NSURLRequest requestWithURL:self.url]];
于 2012-10-21T15:49:01.083 回答
0

检查以下链接。我想它会对你有所帮助。

https://mobiletechfeast.blogspot.in/2014/08/youtube-player-for-ios.html

于 2016-09-17T06:15:24.960 回答
0
于 2019-03-06T07:09:37.247 回答