как воспроизводить видео в веб-представлении Android с помощью HTML5 - PullRequest
4 голосов
/ 03 мая 2011

Я использовал приведенный ниже код для воспроизведения видео в Android WebView, который содержит, я поместил видео и изображение плаката в папку ресурсов.

vWebview = (WebView)findViewById(R.id.VWebview);
vWebview.getSettings().setJavaScriptEnabled(true);
vWebview.getSettings().setPluginsEnabled(true);

ViewContent(raw);   


InputStream fileStream = getResources().openRawResource(R.raw.test); 
int fileLen = fileStream.available();
byte[] fileBuffer = new byte[fileLen]; 
fileStream.read(fileBuffer); 
fileStream.close(); 
String displayText = new String(fileBuffer);
vWebview.loadDataWithBaseURL("fake://not/needed", displayText, "text/html", "utf-8", "");

HTML-файл выглядит так:

<!DOCTYPE HTML>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Hello World</title>


<body>
<div>

<p>
<video src="file:///android_asset/bigbuck.m4v" poster="file:///android_asset/test.jpg" onclick="this.play();"/>
</p>

</div>
</body>
</html>

Работает нормально. изображение плаката отображается правильно, как только я нажимаю, оно выдает ошибку:

05-12 10:24:22.207: ERROR/http(2882): Null or empty value for header "Host"
05-12 10:24:22.207: ERROR/webcoreglue(2882): *** Uncaught exception returned from Java call!
05-12 10:24:22.262: ERROR/AndroidRuntime(2882): Uncaught handler: thread WebViewCoreThread exiting due to uncaught exception
05-12 10:24:22.262: ERROR/AndroidRuntime(2882): java.lang.RuntimeException: Null or empty value for header "Host"
05-12 10:24:22.262: ERROR/AndroidRuntime(2882):     at android.net.http.Request.addHeader(Request.java:161)
05-12 10:24:22.262: ERROR/AndroidRuntime(2882):     at android.net.http.Request.<init>(Request.java:126)
05-12 10:24:22.262: ERROR/AndroidRuntime(2882):     at android.net.http.RequestQueue.queueRequest(RequestQueue.java:359)
05-12 10:24:22.262: ERROR/AndroidRuntime(2882):     at android.net.http.RequestQueue.queueRequest(RequestQueue.java:327)
05-12 10:24:22.262: ERROR/AndroidRuntime(2882):     at android.webkit.HTML5VideoViewProxy$PosterDownloader.start(HTML5VideoViewProxy.java:275)
05-12 10:24:22.262: ERROR/AndroidRuntime(2882):     at android.webkit.HTML5VideoViewProxy.loadPoster(HTML5VideoViewProxy.java:490)
05-12 10:24:22.262: ERROR/AndroidRuntime(2882):     at android.webkit.WebViewCore.nativeTouchUp(Native Method)
05-12 10:24:22.262: ERROR/AndroidRuntime(2882):     at android.webkit.WebViewCore.access$3400(WebViewCore.java:48)
05-12 10:24:22.262: ERROR/AndroidRuntime(2882):     at android.webkit.WebViewCore$EventHub$1.handleMessage(WebViewCore.java:1095)
05-12 10:24:22.262: ERROR/AndroidRuntime(2882):     at android.os.Handler.dispatchMessage(Handler.java:99)
05-12 10:24:22.262: ERROR/AndroidRuntime(2882):     at android.os.Looper.loop(Looper.java:123)
05-12 10:24:22.262: ERROR/AndroidRuntime(2882):     at android.webkit.WebViewCore$WebCoreThread.run(WebViewCore.java:612)
05-12 10:24:22.262: ERROR/AndroidRuntime(2882):     at java.lang.Thread.run(Thread.java:1096)

Ответы [ 3 ]

2 голосов
/ 26 декабря 2013

Я поместил видеофайлы в папку RAW и получил доступ к видеофайлу в файле default.html по следующему коду:

  video.src ="android.resource://ProjectPackageAame/raw/bigbuck";
  video.type = "video/mp4";      
  video.load(); 
  video.play();

Он воспроизводит видео, как я хочу.Также добавлена ​​следующая строка в файле AndroidManifest.

  android:hardwareAccelerated="true"

Попробуйте это - , где разместить локальные видеофайлы для гибридного приложения Android Webview HTML5

1 голос
/ 23 августа 2012

Согласно http://html5test.com/compare/browser/android40.html, Android 4.0 поддерживает элемент видео, но не поддерживает встраивание видео MP4, H.264 или Ogg.Я также пытался создать приложение PhoneGap для Android с видео HTMl5, и оно не воспроизводило видео.HTML5 действителен, но браузер Android не может воспроизводить видео.Кроме того, ваш код HTML5 видео кажется неправильным.На веб-сайте W3Schools есть тег HTML5 video, подобный следующему:

<video width="width" height="height" poster="postersrc.jpg" controls="controls">
    <source src="source.mp4" type="video/mp4" />
    <source src="source.ogg" type="video/ogg" />
    No support for HTML5 video. Sorry!
</video>

Действительно непонятно, как браузер может поддерживать видео-тег HTML5 без поддержки любых типов видео.

0 голосов
/ 21 января 2012

Удалите атрибут src из тега video и сделайте функцию javascript для воспроизведения видео.

...