Android 的 WebView 中的视频播放有声,但没有图像 hardwareAccelerated=true

Video in an Android's WebView plays with sound, but no image with hardwareAccelerated=true

我正在尝试在 Android 的 WebView 中播放来自 HTML5 文件的视频。我尝试了这里提供的几种解决方案,例如将视频编码为 H.264,但是到目前为止,我只能听到视频的声音而没有图像。

代码:

    webView.setWebChromeClient(new WebChromeClient());
    settings.setJavaScriptEnabled(true);
    settings.setPluginState(WebSettings.PluginState.ON);
    settings.setLoadWithOverviewMode(true);
    settings.setUseWideViewPort(true);

    String data = "index.html";
    webView.loadUrl(data);

    webView.setBackgroundColor(Color.TRANSPARENT);
    webView.setLayerType(WebView.LAYER_TYPE_SOFTWARE, null);
    webView.clearCache(true);

清单:

 <application
    android:hardwareAccelerated="true"

感谢任何帮助,谢谢。

要实例化一个 webview 以便它能够在大多数现代 Android 设备上播放 video/audio 我使用以下 Java 代码。当在清单中使用 hardwareAccelerated 时,这允许格式良好的 HTML 和适当编码的视频内容可靠地播放。

package com.offbeatmammal.android.webview;

import android.app.Activity;
import android.os.Bundle;
import android.webkit.WebChromeClient;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.widget.RelativeLayout;

public class WebViewActivity extends Activity {

private WebView webView;

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.webview);

    webView = (WebView) findViewById(R.id.webView1);

    webView.setWebChromeClient(new WebChromeClient()); 
    webView.getSettings().setPluginState(WebSettings.PluginState.ON_DEMAND);
    webView.getSettings().setJavaScriptEnabled(true);

    // load the customURL with the URL of the page you want to display
    String pageURL = "http://url/page.html";
    webView.loadUrl(pageURL);

    //String customHtml = "<html><head><title>Sample</title></head><body><p>Sample</p></body></html>";
    //webView.loadData(customHtml, "text/html", "UTF-8");
    }
}