Ici, je comprend comment un de mes amis a résolu le problème de l'affichage des vidéos en HTML dans Nexus One:
Je n'ai jamais été en mesure de faire la lecture de la vidéo en ligne. En fait beaucoup de gens sur l'internet de mentionner explicitement que la vidéo en ligne jouer en HTML est supporté depuis en Nid d'abeille, et nous nous battions avec Froyo et Gingerbread... Aussi pour les petits téléphones, je pense que le jeu en plein écran est très naturelle, - sinon, pas beaucoup est visible. Donc, le but était de faire de la vidéo de l'ouvrir en plein écran. Cependant, les solutions proposées dans ce fil n'a pas de travail pour nous - cliquant sur l'élément a déclenché rien. En outre, la vidéo, les contrôles ont été affichés, mais pas d'affiche a été affichée et l'expérience utilisateur était encore plus étrange. Donc, ce qu'il fait est la suivante:
Exposer le code natif pour le code HTML afin d'être appelable via javascript:
JavaScriptInterface jsInterface = new JavaScriptInterface(this);
webView.getSettings().setJavaScriptEnabled(true);
webView.addJavascriptInterface(jsInterface, "JSInterface");
Le code lui-même, avait une fonction qui a appelé natif de l'activité pour lire la vidéo:
public class JavaScriptInterface {
private Activity activity;
public JavaScriptInterface(Activity activiy) {
this.activity = activiy;
}
public void startVideo(String videoAddress){
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.parse(videoAddress), "video/3gpp"); // The Mime type can actually be determined from the file
activity.startActivity(intent);
}
}
Puis dans le code HTML lui-même il continuait à défaut de faire de la vidéo tag travailler la lecture de la vidéo. Ainsi, il a finalement décidé de remplacer l' onclick
cas de la vidéo, la rendant de faire le même jeu. Ce presque a travaillé pour lui - sauf pour pas poster a été affiché. Voici le plus curieux, - il a continué à recevoir ERROR/AndroidRuntime(7391): java.lang.RuntimeException: Null or empty value for header "Host"
tous les temps, il a mis l' poster
attribut de la balise. Enfin il a trouvé le problème, ce qui était très bizarre, il s'est avéré qu'il avait gardé l' source
subtag dans l' video
balise, mais jamais utilisé. Et assez étrange exactement ce qui a provoqué le problème. Maintenant voir sa définition de l' video
section:
<video width="320" height="240" controls="controls" poster='poster.gif' onclick="playVideo('file:///sdcard/test.3gp');" >
Your browser does not support the video tag.
</video>
Bien sûr, vous devez également ajouter la définition de la fonction javascript dans le head de la page:
<script>
function playVideo(video){
window.JSInterface.startVideo(video);
}
</script>
Je me rends compte que ce n'est pas purement HTML solution, mais c'est le meilleur que nous avons pu faire pour le Nexus One type de téléphone.
Tous les crédits en faveur de cette solution aller à Dimitar Zlatkov Dimitrov.