Spielen mp4-video in webview in android mit html5
Ich versuche zu spielen mp4-video in webView mit HTML5 in android, aber leider funktioniert es nicht, Also kann mir jemand helfen, wie kann ich es tun ?
Hier ist mein code
HTML Datei mit dem Namen new2.html
<video width="365" height="200" src="/sdcard/Download/video.mp4" controls autobuffer></video>
<!--<!DOCTYPE html>
<html>
<body>
<video width="320" height="240" controls autoplay>
<source src="/sdcard/Download/video.mp4" type="video/mp4">
Your browser does not support the video tag.
</video>
</body>
</html>-->
Java Datei:
public class WebActivity extends Activity {
WebView wv;
@Override
protected void onCreate(Bundle savedInstanceState) {
//TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.web_activity);
wv = (WebView) findViewById(R.id.webview);
wv.loadUrl("file:///android_asset/new2.html");
wv.getSettings().setAllowFileAccess(true);
wv.getSettings().setJavaScriptEnabled(true);
wv.getSettings().setPluginsEnabled(true);
//webview.loadUrl("file:///android_asset/new.html");
}
}
XML Datei:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<WebView
android:id="@+id/webview"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</LinearLayout>
- Das erste, was mir auffällt, ist, dass das video-tag verweist auf eine lokale Datei (auf /sdcard). Ich Frage mich, ob das erlaubt ist (obwohl man sich das aufrufen eines web-Ansicht durch eine native app). Wenn Sie ersetzen, die lokale Datei mit einer URL auf einen lokalen server, nicht das video spielen? Wenn es das tut, dann ist das ein Hinweis darauf, dass Sie ein Berechtigungen - /access-problem.
- Sie sagen, "nicht arbeiten". können Sie das noch näher erläutern? Hast du hardware-Beschleunigung aktivieren (siehe gist.github.com/3718414 für ein Beispiel)
- Offbeatmammal ich versuchte das auch, aber es funktioniert nicht, bedeutet das, ich bin immer ein screen von 365*200 zusammen mit den Reglern spielen, anhalten,suchen,fullscreen etc von videoview aber der Bildschirm ist leer. Ich habe versucht, mit .mp4 und swf werden beide nicht spielen.
- Multimedia-Mike das ist nicht meine Anforderung, ich will spielen, das video von der lokalen sd-Karte mit html.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie rufen Sie Ihre Datei über das lokale host-file://localhost/-- andernfalls wird Ihr Telefon nicht erkennen, dass es ist, dass Sie bitten, für die Berechtigungen. Mit Ihrem browser, ohne Sie localhost pingen aus einem Satelliten und Schaffe es nicht zurück auf re-rentry.
Bekommen Sie die Steuerelemente zur Anzeige, weil es aus einer public html Ordner, aber Ihre Quelle ( video ) nicht.
Vom dieser blog es Staaten gibt es zwei Schritte:
Diese Seite zeigt, , wie es zu tun, wie gut eine Zusammenfassung von dieser Seite folgt:
Schritt 1: Erklären Sie Ihre Inhalte-Anbieter in AndroidManifest.xml:
Schritt 2:
Erstellen Sie Ihre
ContentProvider
und implementierenopenFile
.Alles, was Sie tun müssen, ist get real-Pfad aus uri, öffnen Sie es und Rückkehr der Deskriptor
Finden Sie heraus, wo dein Bild gespeichert ist:
Können Sie jetzt laden Sie die Datei:
hoffe, das hilft.
Was passiert, wenn Sie ändern "/sdcard/Download/video.mp4" auf "file:///sdcard/Download/video.mp4"? Ich meine, dass der html-Teil:
Ich konnte nicht öffnen Sie die html-Seite in eine benutzerdefinierte web app. Allerdings habe ich gemerkt, dass ohne den Zusatz "file:///" das video nicht spielen würde in meinem android-browser. (In meinem Fall durch den Zusatz "file:///" es dauerte einige Zeit, bevor das video gestartet, geladen.)
und das video.mp4 im Ordner "assets", der gleichen Stelle, wo Sie setzen Ihre new2.html