如何在iOS中播放YouTubevideo不全屏?

我一直在试图让YouTube音乐video在我的iOS应用程序中在一个小窗口(不是全屏)中播放,无法使其工作。 我已经尝试了以下内容:

  1. 我首先使用YouTube API,并按照此处的说明创build了YTPlayerView: https : //developers.google.com/youtube/v3/guides/ios_youtube_helper#adding_ytplayerview 。 这使我可以在线播放video,但许多video由于许可问题而无法播放,声明"This video contains content from *. It is restricted from playback on certain sites."
  2. 然后我尝试使用一个UIWebView,它成功地播放了以前不可用的音乐video。 但是,即使设置了webView.allowsInlineMediaPlayback = YES; ,这些video也总是被迫以全屏模式播放webView.allowsInlineMediaPlayback = YES;
  3. 我也尝试使用这里讨论的技术embeddedvideo: 如何在YouTube上embeddedYouTubevideo,并直接在UIWebview上播放,而不是全屏 。 这有助于保持video内联,但再次,使某些video无法播放。
  4. 我终于尝试使用MPMoviePlayerController,但后来发现它不能真正播放YouTubevideo,因为我们没有访问video文件的直接链接,所以这是另一个不行。

像PingTune这样的应用程序显然能够使用YouTube来解决这个问题 – 他们能够以自定义,非全屏视图播放YouTube音乐video,而无需投放广告 – 我错过了什么? 是否有YouTube API的一部分允许我播放这些我错误实施的音乐video?

我从来没有尝试过,但你可以尝试Laurin Brandner的 LBYouTubeView 。 LBYouTubeView只是一个小视图,可以在MPMoviePlayerController中显示YouTubevideo。 您甚至可以在高质量和标准质量stream之间进行select。

代码示例

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