Di sini saya menyertakan bagaimana teman saya memecahkan masalah menampilkan video dalam HTML di Nexus One:
Saya tidak pernah bisa memutar video sebaris. Sebenarnya banyak orang di internet menyebutkan secara eksplisit bahwa pemutaran video inline dalam HTML didukung sejak Honeycomb, dan kami berkelahi dengan Froyo dan Gingerbread ... Juga untuk ponsel yang lebih kecil menurut saya bermain layar penuh sangat alami - jika tidak, tidak banyak yang terlihat . Jadi tujuannya adalah membuat video terbuka dalam layar penuh. Namun, solusi yang diusulkan di utas ini tidak berhasil untuk kami - mengklik elemen tersebut tidak memicu apa pun. Selanjutnya kontrol video ditampilkan, tetapi tidak ada poster yang ditampilkan sehingga pengalaman pengguna menjadi lebih aneh. Jadi yang dia lakukan adalah sebagai berikut:
Tampilkan kode asli ke HTML agar dapat dipanggil melalui javascript:
JavaScriptInterface jsInterface = new JavaScriptInterface(this);
webView.getSettings().setJavaScriptEnabled(true);
webView.addJavascriptInterface(jsInterface, "JSInterface");
Kode itu sendiri, memiliki fungsi yang memanggil aktivitas asli untuk memutar video:
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");
activity.startActivity(intent);
}
}
Kemudian di HTML itu sendiri dia terus gagal membuat tag video berfungsi memutar video. Maka, akhirnya ia memutuskan untuk menimpa onclick
acara video tersebut, membuatnya melakukan pemutaran yang sebenarnya. Ini hampir berhasil baginya - kecuali tidak ada poster yang ditampilkan. Inilah bagian yang paling aneh - dia terus menerima ERROR/AndroidRuntime(7391): java.lang.RuntimeException: Null or empty value for header "Host"
setiap kali dia mengatur poster
atribut tag. Akhirnya dia menemukan masalah, yang sangat aneh - ternyata dia telah menyimpan source
sub tag di video
tag, tetapi tidak pernah menggunakannya. Dan cukup aneh tepatnya inilah yang menyebabkan masalah. Sekarang lihat definisinya tentang video
bagian tersebut:
<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>
Tentu Anda juga perlu menambahkan definisi dari fungsi javascript di head halaman:
<script>
function playVideo(video){
window.JSInterface.startVideo(video);
}
</script>
Saya menyadari ini bukan solusi HTML murni, tetapi yang terbaik yang dapat kami lakukan untuk ponsel jenis Nexus One. Semua kredit untuk solusi ini diberikan kepada Dimitar Zlatkov Dimitrov.