JwPlayerを使用してビデオを再生するビデオ要素を持つページを提供するアプリケーション内で(nanohttpdを使用して)httpサーバーを使用しています。ビデオの種類は .mp4 です。
問題は、カスタム ROM を使用した Samsung Galaxy S3 Mini でビデオを正しく再生できないことです。オーディオは問題ありませんが、ビデオ エリア内では、Web ビュー (グリッチ) の一部を表示する右下隅を除いて、すべてが黒くなっています。ハードウェア アクセラレーションを有効にしようとしましたが、まだ機能していません。
ビデオは android chrome ブラウザー (アプリのサーバーからアクセス可能) で正しく再生されるため、WebView または chromium の構成にエラーがある可能性がありますか? 他の一部のデバイス (Samsung galaxy S3) でも正しく再生されます。
これは、WebView をセットアップするために使用するコードです。
webView = (WebView) findViewById(R.id.webview);
webView.setBackgroundColor(Color.TRANSPARENT);
if (Build.VERSION.SDK_INT >= 11)
webView.setLayerType(View.LAYER_TYPE_HARDWARE, null);
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setLoadsImagesAutomatically(true);
webView.getSettings().setPluginState(PluginState.ON);
webView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
webView.getSettings().setAllowFileAccess(true);
getWindow().addFlags(128);
webView.setWebChromeClient(new WebChromeClient() {
@Override
public boolean onJsAlert(WebView view, String url, String message, final android.webkit.JsResult result)
{
Log.d(LOGTAG, message);
new AlertDialog.Builder(view.getContext()).setMessage(message).setCancelable(true).show();
result.confirm();
return true;
}
});
webView.getSettings().setUserAgentString("Mozilla/5.0 (Windows; U; Windows NT 6.1; en-GB; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2 (.NET CLR 3.5.30729)");
このエラーは、再生の開始時にデバイスによってログに記録されます。
08-29 10:26:31.359: E/chromium(6191): [ERROR:gles2_cmd_decoder.cc(5942)] [.Compositor-Onscreen-0x1490ca0]GL ERROR :GL_INVALID_OPERATION : glUseProgram: program not linked
08-29 10:26:31.359: E/chromium(6191): [ERROR:gles2_cmd_decoder.cc(5718)] [.Compositor-Onscreen-0x1490ca0]GL ERROR :GL_INVALID_OPERATION : glUniformMatrix4fv: wrong uniform function for type
前もって感謝します。