Android WebView 播放视频无法播放问题和视频适应屏幕大小

1.视频无法播放:

点击播放按钮后,提示视频加载失败,错误码0_4



解决这个问题需要添加以下代码:

在AndroidManifest中

android:hardwareAccelerated="true"


在设置webview代码中添加

//支持视频播放
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
            webView.getSettings().setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
        }
        webView.getSettings().setPluginState(WebSettings.PluginState.ON);
        webView.getSettings().setUseWideViewPort(true); // 关键点
        webView.getSettings().setAllowFileAccess(true); // 允许访问文件
        webView.getSettings().setSupportZoom(true); // 支持缩放
        webView.getSettings().setLoadWithOverviewMode(true);
        webView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE); // 不加载缓存内容


视频播放正常了:



2.但是我们发现视频的尺寸有点大,超过了屏幕的宽度,怎么办呢?


其实这里要用到web的css代码

在html代码中添加以下样式:

iframe {
        display: block;
        max-width:100%;
        margin-top:10px;
        margin-bottom:10px;
        }

iframe是获取的html代码中嵌套视频的标签,要对应起来



具体代码:

//官方适应屏幕
    private String getHtmlData(String bodyHTML) {
        String head = "<head>" +
                "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, user-scalable=no\"> " +
                "<style type=\"text/css\"> body { line-height:"+(150)+"%} </style> \n" +
                "<style>img{max-width: 100%; width:auto; height:auto;}</style>" +  //图片适应屏幕
                "<style>iframe {display: block;max-width:100%;\n" +  //视频适应屏幕
                "       margin-top:10px; margin-bottom:10px;}</style>" +
                "<style type=\"text/css\"> \n" +
                "</style> \n" +
                "</head>";
        String htmlStr = "<html>" + head + "<body>" + bodyHTML + "</body></html>";

        return htmlStr;
    }

视频大小显示就正常了:


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值