【混合开发】Android+WebView视频图片播放硬件加速详解

webview视频播放出现白屏、蓝屏、花屏、黑屏等等

但由于布局结构是android+webview+H5+本地视频等。视频播放导致的异常排查起来十分复杂且没有原生的相关日志

于是需要给webview播放视频进行硬件加速,刚开始以为是一件很简单的配置而已。本着无经验从头开始的原则(虽然搞了十多年android开发)。从头查资料核实,结果发现还真有些不一样的说法和讲究。资料只是资料,实际效果还是要看设备运行情况

硬件加速配置

Application 级别(全局)

在 AndroidManifest.xml 的 节点加一行:

xml 复制代码
<application
    android:hardwareAccelerated="true"
    ... />

这个是常规配置,大家都知道

Activity 级别(单个界面)

xml 复制代码
<activity
    android:name=".YourActivity"
    android:hardwareAccelerated="true" />

这个是为了开启webView里的视频加速设置的,资料显示如果要在webView里进行硬件加速Application和Activity都需要配置这个。

Java 代码里动态打开,在 Activity.onCreate()早于 setContentView() 处写

java 复制代码
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED);
}

针对某个 View 硬件加速(可选)

java 复制代码
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
    someView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
}

在14以上的API默认都是打开的,但是国内的手机厂家会做哪些骚操作并不确定,所以还是加上硬件加速配置比较好

注意事项

• 硬件加速默认在 Android 4.0(API 14)及以上自动开启,但 WebView 必须手动确认第 1 或第 2 步,否则会出现视频黑屏、Canvas 异常等问题。

• 运行时标志位(第 3 步)不能关闭硬件加速,只能检测或开启;如想关闭需回退到 Manifest 配置或 setLayerType--确认是否关闭

后记

事实上按以上配置后,实际效果并没有肉眼可见的改善,此方案只是基础支撑,但视频播放问题并不在硬件加速方面

好用的开发工具

推荐理由

postman在国内使用已经越来越困难:

1、登录问题严重

2、Mock功能服务基本没法使用

3、版本更新功能已很匮乏

4、某些外力因素导致postman以后能否使用风险较大

5、postman会导致电脑卡顿,而且使用的功能越多越慢,尤其是win电脑,太让人郁闷了

出于以上考虑因此笔者自己开发了一款api调试开发工具SmartApi,满足基本日常开发调试api需求

SmartApi

win版本不大于1M;运行消耗性能极低

macos 版本不大于100M;运行消耗性能极低

SmartApi只为开发服务

官网地址SmartApi

http://www.smartapi.site/


旧版本已停止维护

相关推荐
科技新资讯3 小时前
视频出海精细化升级:帧级对口型技术与商用工具落地能力分析
人工智能·音视频
游戏开发爱好者83 小时前
App Store 上传 IPA 自动化,.p8 密钥认证与 CI/CD 接入实战
android·运维·ci/cd·小程序·uni-app·自动化·iphone
诸葛大钢铁3 小时前
视频转音频怎么转换?在线工具、VLC、FFmpeg 三种方法详解
ffmpeg·音视频·mp4转mp3·视频转音频·视频转mp3·视频提取音频
xingyuzhisuan4 小时前
团队实践:引入 Vera 1.1 之后,视频内容团队工作流重构
人工智能·重构·音视频
游戏开发爱好者84 小时前
iOS 推送怎么配置,APNs 推送证书、设备库与群发
android·ios·小程序·https·uni-app·iphone·webview
美狐美颜SDK开放平台4 小时前
第三方美颜SDK接入教程:直播APP实现实时美颜、滤镜与美型效果的方法
人工智能·深度学习·音视频·sdk·美颜sdk·视频美颜sdk·直播app开发
AI服务老曹17 小时前
边云协同视频分析性能优化指南:多站点部署下的资源瓶颈突破与调优实战
性能优化·音视频
wxson728219 小时前
【Android视频监控系统技术总结】
android·音视频
程序员老陆20 小时前
FFmpeg6操作 RTMP参数详解
ffmpeg·音视频·rtmp