2017-12-27 17 views
0

AndroidのWebViewでHTML5ファイルから動画を再生しようとしています。私はH.264にビデオをエンコードするなど、ここで提供されるいくつかのソリューションを試しましたが、これまでは画像がないビデオの音しか聞こえませんでした。AndroidのWebViewの動画は再生されますが、hardwareAccelerated = trueの画像はありません

コード:

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" 

すべてのヘルプはapreciatedされて、ありがとうございました。

+2

あなたの特定の問題はわかりませんが、いくつかのアプリで使用していたサンプルはこちらです - https://gist.github.com/Offbeatmammal/3718414私の推測は 'hardwareAccelerated'(古いAndroidデバイス)、またはビデオコード – Offbeatmammal

+0

のいずれかになります@Offbeatmammalありがとうございます、あなたのリンクは私の最初の問題を解決するのを助けました。 今すぐ、KitKat WebViewレンダリングの問題を解決してください。 –

+0

great :)私は答えとして投稿して、他人を確認するためにそれをチェックすることができますか? – Offbeatmammal

答えて

0

最新のAndroid搭載端末でビデオ/オーディオを再生できるようにウェブビューをインスタンス化するには、次の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"); 
    } 
} 
関連する問題