Comment lire la video YouTube dans iOS pas en plein écran?

J'ai essayé de faire en sorte que les videos musicales YouTube soient lues dans mon application iOS dans une petite window (pas en plein écran) et ne fonctionnent pas. J'ai essayé ce qui suit:

  1. J'ai d'abord utilisé l'API YouTube et créé un YTPlayerView comme indiqué ici: https://developers.google.com/youtube/v3/guides/ios_youtube_helper#adding_ytplayerview . Cela m'a permis de lire des videos en ligne, mais de nombreuses videos n'ont pas pu être lues en raison de problèmes de licence, déclarant que "This video contains content from *. It is ressortingcted from playback on certain sites."
  2. J'ai alors essayé d'utiliser un UIWebView, qui a joué avec succès les clips musicaux qui étaient auparavant indisponibles. Cependant, ces videos ont toujours été forcées à jouer en mode plein écran, même lorsque j'ai défini webView.allowsInlineMediaPlayback = YES;
  3. J'ai également essayé d'intégrer la video en utilisant la technique décrite ici: Comment intégrer la video YouTube sur les iOs et la lire directement sur UIWebview sans plein écran . Cela a fonctionné pour garder les videos en ligne, mais encore une fois, rendu certaines videos injouables.
  4. J'ai finalement essayé d'utiliser un MPMoviePlayerController, mais j'ai découvert plus tard qu'il ne pouvait pas vraiment lire les videos YouTube, car nous n'avions pas access aux liens directs des files video, donc c'était un autre non-go.

Des applications telles que PingTune ont clairement pu le comprendre grâce à YouTube – elles sont capables de lire des videos musicales YouTube dans une vue personnalisée, non en plein écran et sans publicité – qu'est-ce qui me manque? Y a-t-il une partie de l'API YouTube qui me permet de lire ces clips musicaux que j'ai mal implémentés?

Je n'ai jamais essayé moi-même mais vous pouvez essayer LBYouTubeView par Laurin Brandner . LBYouTubeView est juste une petite vue qui est capable d'afficher des videos YouTube dans un MPMoviePlayerController. Vous avez même le choix entre un stream de haute qualité et de qualité standard.

Exemple de code

 LBYouTubePlayerViewController* controller = [[LBYouTubePlayerViewController alloc] initWithYouTubeURL:[NSURL URLWithSsortingng:@"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];