J'ai un problème avec un HTML5 Youtube intégré dans un WebView. Je souhaite lire une vidéo Youtube sur mon application. J'ai décidé d'utiliser WebView au lieu de VideoView, car je veux rendre mon système plus flexible pour lire des vidéos à partir du Web.
Bien qu'il existe de nombreuses façons de jouer à YouTube sur Android, mais j'utiliserai la version intégrée de YouTube. " http://www.youtube.com/embed/___________________ ". Parce que c'est l'une des solutions que j'ai trouvées lorsque votre Android ne prend pas en charge le flash.
Le problème:
Le WebView se charge normalement, y compris le Youtube intégré. Mais je reçois un écran noir sur youtube au début.
Quand je clique dessus. Il charge uniquement la première image, mais il ne joue pas. J'ai essayé de jouer sur le navigateur Android, cela fonctionne bien mais pas dans la webView.
Une idée pourquoi?
Ci-dessous est juste un extrait de mon code:
WebView wv = new WebView(getApplicationContext());
wv.getSettings().setPluginState(PluginState.ON);
wv.getSettings().setJavaScriptEnabled(true);
wv.loadUrl("http://apiblog.youtube.com/2010/07/new-way-to-embed-youtube-videos.html");
setContentView(wv);
Voici quelques-unes des ressources que j'ai trouvées très utiles:
Comment pouvons-nous lire le code intégré YouTube dans une Android utilisant Webview?
Comment intégrer un clip YouTube dans une WebView sur Android
http://apiblog.youtube.com/2010/07/new-way-to-embed-youtube-videos.html
http://www.broken-links.com/2009/10/06/building-html5-video-controls-with-javascript/
Merci d'avance pour tout soutien et aide :)
Mise à jour (13 juin 2011):
J'ai réussi à charger http://m.youtube.com dans WebView, mais je ne peux pas lire de vidéo. Mais lorsque j'ai essayé de charger l'URL sur mon Android, il peut jouer.
À partir d'ici, je remarque que le site YouTube de ma WebView n'est pas connecté. Alors, comment pouvons-nous autoriser la WebView à utiliser les mêmes informations d'identification que mon compte Youtube sur mon téléphone? Cela fonctionnera-t-il réellement?
Étape 1 : Ajoutez simplement ceci au fichier manifeste
Android:hardwareAccelerated="true"
étape 2 : vérifiez si vous définissez une couche pour votre vue Web.
(c'est-à-dire) //myWebView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
définir l'accélération matérielle sur vrai et commenter ces lignes a fonctionné pour moi.
Pour en savoir plus sur l'accélération matérielle et les couches, consultez ici http://developer.Android.com/guide/topics/graphics/hardware-accel.html
MODIFIER
Donc, de la conversation sur les commentaires, nous avons déduit:
Sur ce site: www.youtube.com/html5, il est dit que vous devez vous connecter, puis activer la lecture vidéo HTML5
C'est pourquoi votre vidéo ne se charge pas, elle est redirigée vers une version flash et votre webview n'a pas de flash.
ORIGINAL
Remplacez-vous le chargement de l'URL pour que votre vue Web soit utilisée?
wv.setWebViewClient(new WebViewClient(){
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
return false;
}
});
Voulez-vous dire que la vidéo ne sera pas lue mais que le site Web se charge?
Vous pourriez essayer de mentir à YouTube et leur dire que votre navigateur est différent (peut-être faire semblant d'être le Android) Firefox est:
wv.getSettings().setUserAgentString("Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/534.36 (KHTML, like Gecko) Chrome/13.0.766.0 Safari/534.36");
Comment activer HTML5 dans Android WebView n'est pas bien documenté. Vous voudrez peut-être essayer mes HTML5WebView et mes anciens slides