Android WebView 播放视频无法播放问题和视频适应屏幕大小
程序员文章站
2022-03-10 17:07:07
...
1.视频无法播放:
点击播放按钮后,提示视频加载失败,错误码0_4
解决这个问题需要添加以下代码:
在AndroidManifest中
android:hardwareAccelerated="true"
//支持视频播放
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;
}
视频大小显示就正常了:
上一篇: Java中的泛型