riprodurre video di YouTube in WebView
-
21-09-2019 - |
Domanda
Nella mia app Android ho una WebView per visualizzare i dati html dal nostro sito. A volte la pagina avrà incorporare oggetti di YouTube. Questo non viene visualizzato correttamente in app. C'è un modo per mostrare / riprodurre i video di YouTube in WebView? Grazie.
Soluzione
Non si può mostrare loro integrati tranne forse su dispositivi che dispongono di Flash.
Tuttavia, se è possibile analizzare i dettagli del video di YouTube, si può essere in grado di costruire un ACTION_VIEW
Intent
che li mostra sul l'applicazione YouTube ... per i dispositivi Android che hanno l'applicazione YouTube.
Si potrebbe anche sperimentare con tag <video>
di HTML5, che per quanto ne so è supportato nell'applicazione Browser e possono quindi lavorare in WebView
.
Altri suggerimenti
I mai incontrato questo post: link
E in effetti, ho praticamente solo bisogno di aggiungere alla applicazione XML manifest:
android:hardwareAccelerated="true"
E voilà, anche il video di YouTube ha iniziato a giocare
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);
}
});
WebView (WebView) ti invierà il messaggio shouldOverrideUrlLoading con un URL che assomiglia a questo:
vnd.youtube:? {} {VIDEO_ID PARMS}
analizzare questo per convertirlo in http://www.youtube.com/v/ {VIDEO_ID}, poi mano via questa rivisto URL, un Intent.
Lavora per me ...
Leggi il mio post sul gruppo android-sviluppatori qui: YouTube nell'emulatore?
In sostanza, il modo migliore per riprodurre clip di YouTube è quello di creare la propria attività per essa, ed ecco un grande esempio: polacco Il tuo App: gratis Embeddable Android YouTube Attività
UPDATE: I problemi con le incompatibilità a causa di YouTube cambiamenti gettone sono stati corretti. Ultima versione del componente dovrebbe funzionare bene per i video di YouTube pubblici.
Si potrebbe provare a passare il tuo sito web per incorporare il HTML5 del player di YouTube al posto del flash versione. Ancora non è sicuro che questo funzionerà al 100%, ma è ovviamente andare a lavorare meglio rispetto alla versione flash sui dispositivi che non supportano Flash.
Modifica:. Nevermind sembra che la versione HTML5 richiede anche il browser a supportare il codec H.264, che non assomiglia a nessun dispositivi Android attualmente supportano
video incorporato di YouTube funzionano bene nei browser desktop e in iPhone browser (anche quando incorporato in applicazioni su iPhone), in modo che sembra essere un problema con Android, piuttosto che su YouTube.
C'è una biblioteca che uso per i tag video HTML5 in WebView Android, funziona per tutti i video di YouTube e la maggior parte dei video in flash così, sostenendo che entrano ed escono fullscreen tra le altre caratteristiche.