it-swarm.com.de

Spielen Sie YouTube-Videos mit MPMoviePlayerController anstelle von UIWebView ab

Ich versuche, einige YouTube-Videos mit dem MPMoviePlayerController zu streamen, aber ich habe einige Probleme. Der Code, den ich verwende, ist ziemlich einfach und ich kann .m4v-Videos abspielen, indem ich eine URL an initWithContentURL übergeben. Wenn ich den Film-Player starte, wird der Player gestartet, aber nach ca. 20 Sekunden wird er wieder entfernt. Wenn ich es im Simulator versuche, erhalte ich eine Warnmeldung, die besagt, dass der Server nicht richtig konfiguriert ist. Gibt es ein Argument, das ich mit der URL übergeben muss, um eine bestimmte Art von Video-Feed von Google zu erhalten?

NSURL *videoURL = [NSURL URLWithString:@"http://www.youtube.com/v/HGd9qAfpZio&hl=en_US&fs=1&"];
MPMoviePlayerController *moviePlayer;
moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:videoURL];

[moviePlayer play];

Ich habe auch folgende URL ausprobiert http://www.youtube.com/watch?v=HGd9qAfpZio

Ich habe auch das Argument & format = 1 gesehen und versucht, das an das Ende der beiden Saiten anzufügen, aber kein Glück.

87
jmurphy

Die einzige Möglichkeit, ein Youtube-Video in Ihrer eigenen App abzuspielen, besteht darin, eine UIWebView mit dem eingebetteten Tag von Youtube für den Film zu erstellen, den Sie als UIWebView's-Inhalt abspielen möchten. UIWebView erkennt, dass das eingebettete Objekt ein Youtube-Link ist, und der Inhalt der Webansicht ist die Youtube-Vorschau für das Video. Wenn Ihr Benutzer auf die Vorschau klickt, wird das Video in einem MPMoviePlayerController angezeigt. Dies ist die Technik, die bei dem von Muxecoid bereitgestellten Link beschrieben wurde ( wie man Youtube-Videos innerhalb einer Anwendung abspielt ), und dies ist (soweit ich weiß) die einzige Möglichkeit, ein Youtube-Video innerhalb einer Anwendung abzuspielen. Sie können die Youtube-Anwendung trotzdem starten, indem Sie die Youtube-URL an -[UIApplication openURL:] übergeben. Dies schließt jedoch Ihre eigene Anwendung, was oft unerwünscht ist.

Leider ist es nicht möglich, ein Youtube-Video direkt mit MPMoviePlayerController abzuspielen, da Youtube keine direkten Links zu den Videodateien bereitstellt.

78
Bryan Henry

Wenn Sie .__ verwenden. 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];  
  }

Quelle:

Verweise einfach auf diesen Link

Stellen Sie sicher, dass Sie es auf dem Gerät testen und nicht auf dem Simulator. Da der Simulator das Fragezeichen immer mit einem blauen Kästchen anzeigt (er hat keinen Schnellspieler).

26
Jimit

Wie ich oben in meinem Kommentar schrieb, musste ich dies in einem Projekt tun, an dem ich arbeitete. Ich habe dieses Problem gelöst und den Code auf Github übermittelt.

Sie können die Quelle überprüfen und sie hier .

Im Grunde nimmt es eine Youtube-URL und erhält alle iOS-kompatiblen Video-URLs.

Hoffe das ist jede Hilfe!
Prost

23
hellozimi

Ich bin gerade auf jemanden gestoßen, der ein YouTube-Video in eine MPMoviePlayerController einfügen konnte. Es erscheint jetzt möglich.

LBYouTubeView

13
TPoschel

Um Ihre Tube-Videos abzuspielen, müssen Sie die URL extrahieren, bevor Sie die URL in MPMoviePlayer übergeben. Sie können es nicht direkt spielen.

Mein Github Repo hat eine Demo-Implementierung davon.

Sehen:

https://github.com/DpzAtMicRO/IOSYoutubePlayer

Probieren Sie es aus, dies ermöglicht das Laden und Abspielen von Youtube-Videos direkt in MPMoviePlayer wie bei jedem anderen Video. 

BEARBEITEN: Stellen Sie sicher, dass Sie die Readme.md gut durchlaufen, bevor Sie diese in Ihrem Projekt verwenden

2
D_D

Es ist so einfach wie das src-Element des iframe für den neuen Einbettungscode und das Aufrufen 

[self.webView loadRequest:[NSURLRequest requestWithURL:self.url]];
1
jjxtra

Es gibt eine offizielle Möglichkeit, YouTube-Videos in iOS-Anwendungen einzubetten, die von Google bereitgestellt werden.

Installiere die Bibliothek über Cocoapods: pod "youtube-ios-player-helper"

importieren nach: #import “YTPlayerView.h” Verwenden Sie UIView und setzen Sie class auf YTPlayerView oder erstellen Sie ein Objekt von YTPlayerView programmgesteuert.

Video laden: [self.playerView loadWithVideoId:@"M7lc1UVf-VE"];

Es gibt auch playVideo- und stopVideo-Methoden. Für weitere Informationen besuchen Sie diesen Link

0
Ganpat

Überprüfen Sie den folgenden Link. Ich denke es wird dir helfen.

https://mobiletechfeast.blogspot.in/2014/08/youtube-player-for-ios.html

0
arango_86