J'essaie de diffuser certaines vidéos YouTube à l'aide de MPMoviePlayerController, mais j'ai des problèmes. Le code que j'utilise est assez simple et je peux lire des vidéos .m4v en transmettant une URL à initWithContentURL. Lorsque je lance le lecteur de film, celui-ci apparaît mais disparaît au bout de 20 secondes environ. Lorsque j'essaie dans le simulateur, un affichage d'alerte indique que le serveur n'est pas configuré correctement. Dois-je passer un argument avec l'URL pour obtenir un type spécifique de flux vidéo à partir de 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];
J'ai également essayé les URL suivantes http://www.youtube.com/watch?v=HGd9qAfpZio
J'ai aussi vu l'argument & format = 1 et j'ai essayé de l'ajouter à la fin des deux chaînes mais sans succès.
La seule façon de lire une vidéo youtube dans votre propre application est de créer une variable UIWebView
avec la balise incorporée de Youtube pour le film que vous souhaitez lire en tant que contenu UIWebView's
. UIWebView
détectera que l'objet incorporé est un lien Youtube et le contenu de la vue Web sera l'aperçu youtube de la vidéo. Lorsque votre utilisateur clique sur l'aperçu, la vidéo apparaît dans un MPMoviePlayerController. C'est la technique décrite sur le lien fourni par Muxecoid ( comment lire des vidéos youtube dans une application ), et c'est (à ma connaissance) le seul moyen de lire une vidéo youtube dans une application. Vous pouvez toujours lancer l'application Youtube en passant l'URL youtube à -[UIApplication openURL:]
, mais bien sûr, cela ferme votre propre application, ce qui est souvent indésirable.
Malheureusement, il n’ya aucun moyen de lire directement une vidéo youtube avec MPMoviePlayerController
car youtube n’expose pas de liens directs vers les fichiers vidéo.
Si vous utilisez Code:
- (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];
}
La source:
Assurez-vous de le tester sur l'appareil et non sur le simulateur. Comme le simulateur affichera toujours un point d’interrogation avec la boîte bleue (il n’a pas de lecteur Quick-Time).
Comme je l'ai écrit plus haut dans mon commentaire, je devais le faire dans le cadre d'un projet sur lequel je travaillais. J'ai résolu ce problème et soumis le code sur github.
Vous pouvez vérifier la source et la bifurquer ici .
Fondamentalement, il faut une URL youtube et obtient toutes les URL de vidéos compatibles iOS.
J'espère que c'est pour vous aider!
À votre santé
Je suis tombé sur quelqu'un qui a pu placer une vidéo YouTube
dans une MPMoviePlayerController
. Cela semble possible maintenant.
Pour lire vos vidéos sur le tube, vous devez extraire l’URL avant de la passer à MPMoviePlayer
. Vous ne pouvez pas y jouer directement.
Mon repo github a une implémentation de démonstration de cela.
Voir:
https://github.com/DpzAtMicRO/IOSYoutubePlayer
Essayez-le, cela permet de charger et de lire une vidéo youtube directement dans MPMoviePlayer
comme n'importe quelle autre vidéo et constitue également une bonne approche.
EDIT: assurez-vous de lire attentivement le fichier Readme.md avant de l’utiliser dans votre projet
C'est aussi simple que de prendre l'élément src de l'iframe pour le nouveau code d'intégration et d'appeler
[self.webView loadRequest:[NSURLRequest requestWithURL:self.url]];
Il existe un moyen officiel d'intégrer la vidéo YouTube dans l'application iOS fournie par Google.
Installez la bibliothèque via cocoapods: pod "youtube-ios-player-helper"
importer par: #import “YTPlayerView.h”
Utilisez UIView
et définissez la classe sur YTPlayerView
ou créez un objet de YTPlayerView
par programme.
Charger la vidéo: [self.playerView loadWithVideoId:@"M7lc1UVf-VE"];
Il existe également des méthodes playVideo
et stopVideo
disponibles. Pour plus d'informations, visitez ce lien
Vérifiez le lien suivant. Je pense que cela vous aidera.
https://mobiletechfeast.blogspot.in/2014/08/youtube-player-for-ios.html