web-dev-qa-db-fra.com

Lire des vidéos YouTube dans une application iPhone sans utiliser UIWebView?

Je souhaite lire des vidéos YouTube à partir de mon application iPhone. Je dois essayer de lire des vidéos YouTube dans mon application iPhone avec les codes suivants,

[self playVideo:@"http://www.youtube.com/watch?v=WL2l_Q1AR_Q" frame:CGRectMake(20, 70, 280, 250)];

- (void)playVideo:(NSString *)urlString 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, urlString, frame.size.width, frame.size.height];
    UIWebView *videoView = [[UIWebView alloc] initWithFrame:frame];
    [videoView loadHTMLString:html baseURL:nil];
    [self.view addSubview:videoView];
    [videoView release];
    NSLog(@"%@",html);
}

Mais, ce code ne fonctionne pas pour moi. Et aussi j'ai essayé avec MPMoviePlayerController le code est,

NSURL *fileURL = [NSURL URLWithString:@"http://www.youtube.com/watch?v=WL2l_Q1AR_Q"];
MPMoviePlayerController *moviePlayerController = [[MPMoviePlayerController alloc] initWithContentURL:fileURL]; 
[moviePlayerController.view setFrame:CGRectMake(0, 70, 320, 270)]; 
[self.view addSubview:moviePlayerController.view];  
moviePlayerController.fullscreen = YES;  
[moviePlayerController play];

Cela ne fonctionne pas non plus pour moi. Quelqu'un peut-il me dire où je me suis trompé et me suggérer des idées? Je souhaite lire les vidéos YouTube dans MPMoviewPlayerController plutôt que d'utiliser UIWebView. Merci d'avance. 

29
Yuvaraj.M

Mr.Yuvaraj.M votre code ci-dessus est correct. Veuillez exécuter le projet sur votre iPhone/iPod touch. Les vidéos youtube peuvent ne pas prendre en charge/ne pas fonctionner dans Simulator. S'il vous plaît vérifier à ce sujet. Merci.

7
Gopinath

Utilisez simplement XCDYouTubeVideoPlayerViewController . Il ajoute de manière transparente une vidéo youtube à votre application sans avoir besoin de UIWebView.

Il utilise les cadres de téléchargement progressif + MoviePlayer et AVFoundation. Il suffit de lui fournir un identifiant de vidéo youtube et vous êtes prêt à partir. 

Il supporte à la fois plein écran et non plein écran et WORKS ON iOS SIMULATOR !!!

Exemple:

XCDYouTubeVideoPlayerViewController *videoPlayerViewController = [[XCDYouTubeVideoPlayerViewController alloc] initWithVideoIdentifier:@"9bZkp7q19f0"];
[self presentMoviePlayerViewControllerAnimated:videoPlayerViewController];
10
Hlung

Il existe maintenant une classe YTPlayerView avec l'API de données YouTube (v3) .

Consultez Utilisation de la bibliothèque auxiliaire de YouTube pour intégrer des vidéos YouTube à votre application iOS

Il fournit des instructions détaillées sur l'installation de la bibliothèque d'assistance et sur l'intégration de YTPlayerView dans votre storyboard.

8
Max MacLeod

Lire une vidéo sur youtube dans Swift 4.1

Ajouter Pod Pod 'XCDYouTubeKit'

importer XCDYouTubeKit dans ViewController

func playYoutubeVideo(){

let strUrl = "https://www.youtube.com/watch?v=9m_K2Yg7wGQ"
if let range = strUrl.range(of: "=") {
        let strIdentifier = strUrl.substring(from: range.upperBound)
        print("Identifier:\(strIdentifier)")
        let videoPlayerViewController = 
        XCDYouTubeVideoPlayerViewController(videoIdentifier: strIdentifier)
        videoPlayerViewController.present(in: viewYTVideo)
        videoPlayerViewController.moviePlayer.play()
    }
}
1
Mahesh Chaudhari

Au lieu du code HTML incorporé que vous utilisez, accédez au site Web de YouTube, recherchez une vidéo, utilisez le bouton Partager, puis le bouton Incorporer pour obtenir un exemple de HTML incorporé. Utilisez ce modèle pour incorporer la vidéo plutôt que la version Flash que vous utilisez actuellement.

1
Rob Reuss