MTK-Android12-假横屏-竖屏开机解决各类APP USB相机适配问题
提示假横屏解决各类App-USB显示问题-调整USB相机旋转问题文章目录前言-问题描述一、参考资料二、项目场景-问题产品平台-形态实际问题三、MTK平台下原生Camera2和MTK平台的Camera2区别和联系相关资料参考路径与定位1/packages/apps/Camera22/vendor/mediatek/proprietary/packages/apps/Camera2核心区别一眼看懂四、经验分享1、为什么要用原生相机2、MTK相机解决方案-要用USB相机 如何更改编译文件- 比如要使用MTK相机释放谷歌自带的Camera2相机App屏蔽MTK自带的相机App 配置3、根据实际情况修改预览、成像的方向问题4、USB摄像头下APP预览-旋转主次问题特别重要总结前言-问题描述MTK平台相机无法打开USB类型的相机使用USB类型的相机各个第三方APP拉伸、预览方向不对比如视频通话时候 成像方向不对、相机方向不对。以下从其它角度进行补充说明方便梳理、总结知识点。一、参考资料MTK-Android13-假横屏-竖屏开机解决各类APP USB相机适配问题这里详细介绍了相关的知识点和解决方案同样的场景同样的问题这里是Android12 版本而已。二、项目场景-问题产品平台-形态基于MTK6769 产品 Android12 做闺蜜机、家庭闺蜜机产品、运营商家庭闺蜜机盒子产品。相机用的是USB类型相机且唯一产品默认横屏、也可竖屏显示产品中存在实际问题所有App 无法打开相机、无法实现预览。具体说相机App 无法预览、拍照、录像通话App 比如微信、腾讯会议无法出现预览画面的。解决预览显示发现预览画面不对方向不对、横竖屏下预览方向和存储照片、视频方向也不对。三、MTK平台下原生Camera2和MTK平台的Camera2区别和联系为什么要理解这个知识点默认情况下 MTK平台用的是MTK相机很少有情况用默认原生谷歌相机。 为什么要搞清楚区别MTK生态下默认使用的是MTK相机的原生相机处于禁用状态MTK相机无法直接打开USB类型相机的所以默认使用MTK相机情况下如果你的是MTK平台有自己开发USB相机的需求 专门去打开USB类型相机不然自带相机不可用无法打开USB类型相机。 那么就存在两个相机一个用来打开mipi 相机一个用来打开USB类型相机。 因为MTK相机比较好自己是无法开发一个既可以打开USB类型相机又可以打开mipi 相机的App的。相关资料参考如果有相关USB类型相机开发需求或者了解可参考以前知识点总结UVC for USBCamera in Android - 篇一UVC for USBCamera in Android - 篇二USBCamera手柄按键功能实现RK3576-Android15_Usb白名单功能实现篇二RK3576-Android15原生相机Camera2 修改USB相机预览和成像方向路径与定位1/packages/apps/Camera2来源原生代码Google官方归属system分区属于AOSP开源部分定位标准 Camera2 API 参考实现无厂商私有扩展特点纯Android标准接口调用 功能基础拍照、录像、简单美颜、基本HDR不依赖MTK私有库可在任何支持Camera2API的平台编译运行2/vendor/mediatek/proprietary/packages/apps/Camera2来源MTK私有仓库proprietary闭源 / 半开源归属vendor分区Treble分离属于MTK平台定制部分定位MTK量产级相机应用对接MTK私有HAL/ISP/算法特点基于AOSPCamera2改造但大量私有扩展 支持MTK独有功能 多摄主摄副摄超广角切换MTKHDR、AI美颜、人像模式、超级夜景 私有VendorTag、ISP调参、实时算法预览 强依赖MTK私有库libcamera_client_MTK.so、libmtkcam.so 等核心区别一眼看懂对比项AOSP Camera2packages/apps/Camera2MTK 定制 Camera2vendor/mediatek/…/Camera2代码来源Google AOSP 开源MTK 私有闭源 / 半开源分区systemvendorAPI 依赖标准 Camera2 API标准 API MTK 私有扩展 API功能基础拍照 / 录像全功能多摄、AI、HDR、美颜、夜景等算法无内置算法依赖 Framework/HAL深度集成 MTK ISP/AI 算法编译默认不默认编译MTK 项目默认编译启用适用场景原生体验、兼容性测试、定制基础量产机型、MTK 平台专属功能四、经验分享1、为什么要用原生相机解决MTK相机无法打开使用USB类型相机问题2、MTK相机解决方案-要用USB相机 如何更改编译文件- 比如要使用MTK相机最后发现 MTK平台源码中自带的Camera2 本身支持USB相机的这个Camera2 实际上就是谷歌自带的Camera2 相机app. 默认情况下 MTK平台的MTKCamera 会覆盖谷歌相机造成USBCamera 类型相机无法使用。解决方案把MTKCamera 相机屏蔽掉不进入编译环境把系统自带的谷歌Camera2 释放出来即可。释放谷歌自带的Camera2相机App配置文件路径\build\make\target\product\handheld_product.mk添加Camera2 配置如下屏蔽MTK自带的相机App 配置\device\mediatek\system\common\device.mk去掉Camera 、Camera0配置如下3、根据实际情况修改预览、成像的方向问题实际情况下屏幕方向、强制横竖屏 不一致可能会导致预览、成像问题。那么 根据实际情况调整预览方向和成像方向涉及到两个类/packages/apps/Camera2/src/com/android/camera/VideoModule.java/packages/apps/Camera2/src/com/android/camera/app/OrientationManagerImpl.java比如如下修改实际调试还是需要自己亲自调试验证的。4、USB摄像头下APP预览-旋转主次问题特别重要最终我们的首要目标是解决第三方App 视频通话预览画面的问题所有按照3 来进行旋转 如果旋转不成功配合调整正对性相机的方向。这里会有几个问题如果是一个方向的那么正常情况下按照3 中解决方案是没有问题的能够调出来。如果是强制横竖屏情况横竖屏会导致方向乱的那么搞定一个方向就可以了。你先搞定第三方使用问题针对自己的原生相机自己有源码是可以进行修改的比如预览、成像问题。总结这里其实对之前知识点的重温并没有新的知识点再次稍微归纳整理遇到类型的MTK平台USB相机问题预览问题知道具体问题点方便针对性开发调试。MTK平台手机平台为主所有针对平板产品解决方案并不突出或者没有所有 这里涉及到强制横竖屏方案竖屏开机-开机后默认横屏显示实现第三方App 正常预览功能不然没法解决的。再次建议 查阅 MTK-Android13-假横屏-竖屏开机解决各类APP USB相机适配问题知识点方便理解、充电。