首页 > 解决方案 > 我的 webview 视频可以在模拟器上运行,但不能在设备上运行

问题描述

我正在开发一个 WebRTC webview 项目。我正在播放具有摄像头和麦克风权限的视频。视频可以在模拟器上运行,但不能在手机上运行。按钮进来,相机打开,但视频没有出现。在白色屏幕上留下叶子。

API 级别与 API 28 相同。

我的代码在这里

初始化视图()

mWebView = (WebView) findViewById(R.id.wb);
        mWebView.requestFocus();
        mWebView.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);
        WebSettings settings = mWebView.getSettings();
        settings.setDomStorageEnabled(true);
        mWebView.setWebViewClient(new MyWebViewClient());
        WebChromeClientCustomPoster chromeClient = new WebChromeClientCustomPoster();
        mWebView.setWebChromeClient(chromeClient);
        mWebView.getSettings().setJavaScriptEnabled(true);
        mWebView.setWebChromeClient(new WebChromeClient() {
            @Override
            public void onPermissionRequest(final PermissionRequest request) {


                MainActivity.this.runOnUiThread(new Runnable(){
                    @TargetApi(Build.VERSION_CODES.M)
                    @Override
                    public void run() {
                        request.grant(request.getResources());

                    }// run
                });// MainActivity

            }// onPermissionRequest
        });// setWebChromeClient


        mWebView.loadUrl("http://google.com");

标签: javaandroidwebviewandroid-emulator

解决方案


我找到了答案。我添加了

mWebView.getSettings().setMediaPlaybackRequiresUserGesture(false)

并且应用程序工作正常。


推荐阅读