2010-02-18 3 views
14

In meiner Android App habe ich ein WebView HTML-Daten von unserer Website anzuzeigen. Manchmal werden auf der Seite Objekte eingebettet. Dies wird in der App nicht richtig angezeigt. Gibt es eine Möglichkeit, Youtube-Videos in WebView anzuzeigen/abzuspielen? Vielen Dank.spielen youtube video in WebView

+0

antwortete ich, wie Ihr webview Setup einbinden und YouTube-Videos spielen hier: http://stackoverflow.com/a/12850816/223440 –

Antwort

8

Sie können sie nicht eingebettet anzeigen, außer vielleicht auf Geräten mit Flash.

Wenn Sie jedoch die YouTube-Videodaten analysieren können, können Sie möglicherweise eine ACTION_VIEWIntent erstellen, die sie in der YouTube-Anwendung ... für die Android-Geräte mit der YouTube-Anwendung anzeigt.

Sie könnten auch mit dem HTML5-Tagexperimentieren, wobei AFAIK in der Browser-Anwendung unterstützt wird und daher in WebView funktionieren kann.

+0

Dank Mark, Im beginnend mit einer neuen Absicht auf dem youtube gehen url. –

+3

Ich habe versucht, HTML5 ohne Erfolg zu verwenden. Der Browser lädt zwar die "Vorschau" des Videos, aber keine Wiedergabefunktion. – Raykud

2

Sie könnten versuchen, Ihre Website zu wechseln, um die HTML5 version of the YouTube player anstelle der Flash-Version einzubetten. Ich bin mir immer noch nicht sicher, ob das 100% funktioniert, aber es wird offensichtlich besser funktionieren als die Flash-Version auf Geräten, die Flash derzeit nicht unterstützen.

Bearbeiten: Es scheint, als würde die HTML5-Version auch den Browser benötigt, um den H.264-Codec zu unterstützen, der nicht aussieht, wie es derzeit von Android-Geräten unterstützt wird.

+0

Danke für deine Bearbeitung, benötigt, dass info: D – Warpzit

4

Lesen Sie meinen Beitrag auf die Android-Entwicklergruppe hier: YouTube in the emulator?

Grundsätzlich ist der beste Weg, YouTube-Clips zu spielen ist Ihre eigene Aktivität für sie zu schaffen, und hier ist ein gutes Beispiel: Polish Your App: Free Embeddable Android YouTube Activity!

UPDATE : Die Probleme mit den Inkompatibilitäten aufgrund von YouTube-Token-Änderungen wurden behoben. Die neueste Version der Komponente sollte gut für öffentliche YouTube-Videos funktionieren.

+0

Danke Felix, ich sah auf einen benutzerdefinierten Spieler, aber entschied sich dagegen. Der Grund dafür ist, dass der Standard-Player mehr Funktionen wie Lesezeichen, Sterne usw. besitzt, die auf dem benutzerdefinierten Player nicht verfügbar sind. Auch der Standardplayer ist dem Benutzer vertrauter. –

+0

sah aus wie genau das, was ich brauchte, aber es scheint kaputt zu sein, youtube Sicherheitsveränderung und jetzt kann es das Video nicht finden – schwiz

6
webView.setWebViewClient(new WebViewClient() 
{ 
public boolean shouldOverrideUrlLoading(WebView view, String url) 
{ 
    // YouTube video link 
    if (url.startsWith("vnd.youtube:")) 
    { 
    int n = url.indexOf("?"); 
    if (n > 0) 
    { 
    startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(String.format("http://www.youtube.com/v/%s", url.substring("vnd.youtube:".length(),n))); 
    } 
    return (true); 
    } 

    return (false); 
} 
}); 

Sie WebView (webView) erhalten Sie die shouldOverrideUrlLoading Nachricht mit einer URL senden, die wie folgt aussieht:

vnd.youtube:{VIDEO_ID}?{PARMS} diese

Parse es zu konvertieren zu http://www.youtube.com/v/ {VIDEO_ID}, dann überreichen Sie diese überarbeitete URL als Absicht.

Arbeiten für mich ...

+0

Wie kommt es, dass ich dieses Ereignis nicht erhalte, wenn ich auf das Videobild klicke? Mein Link sieht so aus: