在WebView中使用JwPlayer进行Mp4播放

时间:2014-08-29 10:19:01

标签: android html5 webview jwplayer nanohttpd

我在我的应用程序中使用了一个http服务器(使用nanohttpd),该服务器提供一个具有视频元素的页面,该视频元素使用JwPlayer播放视频。视频类型为.mp4。

问题是我无法使用自定义ROM在我的三星Galaxy S3 Mini中正确再现视频。音频很好,但在视频区域内,除右下角外,一切都是黑色的,显示部分网页视图(毛刺)。 我尝试启用硬件加速,但它仍然无法正常工作。

视频在Android Chrome浏览器中正常播放(可通过应用程序服务器访问),因此可能是WebView或Chrome配置错误?它也可以在其他一些设备(三星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

提前谢谢。

0 个答案:

没有答案