如何在iOS中播放YouTube视频而不是全屏?

时间:2015-01-23 22:25:40

标签: ios youtube uiwebview video-streaming embed

我一直试图让我的iOS应用中的YouTube音乐视频在一个小窗口(不是全屏)中播放,并且无法让它工作。我尝试了以下内容:

  1. 我首先使用了YouTube API并按照此处的说明创建了YTPlayerView:https://developers.google.com/youtube/v3/guides/ios_youtube_helper#adding_ytplayerview。这使我可以在线播放视频,但由于许可问题导致许多视频无法播放,并声明"This video contains content from *. It is restricted from playback on certain sites."
  2. 然后我尝试使用UIWebView,它成功播放了以前不可用的音乐视频。但是,即使我设置webView.allowsInlineMediaPlayback = YES;
  3. ,这些视频也总是被迫以全屏模式播放
  4. 我还尝试使用此处讨论的技术嵌入视频:How to embed YouTube video on iOs and play it directly on UIWebview without full screen。这有助于保持视频内联,但再次使某些视频无法播放。
  5. 我终于尝试使用MPMoviePlayerController,但后来发现它实际上无法播放YouTube视频,因为我们无法访问视频文件的直接链接,所以这是另一个禁忌。
  6. 像PingTune这样的应用显然可以使用YouTube来解决这个问题 - 他们能够以自定义的非全屏视图播放YouTube音乐视频,而且没有广告 - 我缺少什么?是否有YouTube API的一部分允许我播放这些我错误实施的音乐视频?

1 个答案:

答案 0 :(得分:0)

我自己从未尝试过,但您可以LBYouTubeView尝试Laurin Brandner。 LBYouTubeView只是一个小视图,可以在MPMoviePlayerController中显示YouTube视频。您甚至可以选择高质量和标准质量的流。

代码示例

LBYouTubePlayerViewController* controller = [[LBYouTubePlayerViewController alloc] initWithYouTubeURL:[NSURL URLWithString:@"http://www.youtube.com/watch?v=1fTIhC1WSew&list=FLEYfH4kbq85W_CiOTuSjf8w&feature=mh_lolz"] quality:LBYouTubeVideoQualityLarge];
controller.delegate = self;
controller.view.frame = CGRectMake(0.0f, 0.0f, 200.0f, 200.0f);
controller.view.center = self.view.center;
[self.view addSubview:self.controller.view];