Android高通 8.1 老化apk打开摄像头花屏问题

1、最近由于公司VR 3D系统要做双Camera老化测试apk,同时老化4小时需要轮询切换二个摄像头,保证后面camera标定精度数据更准确。

2、一开始我尝试用之前方案移植过去然后同时打开双摄像头 突然发现花屏 如下图所示

3、于是一第一时间想到是不是分辨率不兼容或者硬件Camera问题 或者找驱动确认 驱动确认结果2D系统没有问题 ,于是我交叉验证换了一台机器 跟硬件结果还是花屏,因为之前也处理类似的case,于是我自己尝试修改固定的分辨率1280*720 (720P)代码如下(这里只是部门代码github上面也有很多camera源码以及骁龙相机源码 大家可以下载自行研究)

   private val mStateCallback2: CameraDevice.StateCallback =object : CameraDevice.StateCallback() {override fun onOpened(camera: CameraDevice) {Log.i(TAG, "StateCallback! onOpened 2")mCameraDevice2 = camera // 打开成功,保存代表相机的CameraDevice实例val surfaceTexture = mTextureView2!!.surfaceTexturesurfaceTexture.setDefaultBufferSize(1280, 720) //3264X2448(800万)val surface = Surface(surfaceTexture)val previewList = ArrayList<Surface>()previewList.add(surface)try {// 6.将TextureView的surface传递给CameraDevicemCameraDevice2!!.createCaptureSession(previewList,object : CameraCaptureSession.StateCallback() {override fun onConfigured(session: CameraCaptureSession) {try {val builder =mCameraDevice2!!.createCaptureRequest(CameraDevice.TEMPLATE_PREVIEW)builder.addTarget(surface) // 必须设置才能正常预览val captureRequest = builder.build()// 7.CameraCaptureSession与CaptureRequest绑定(这是最后一步,已可显示相机预览)session.setRepeatingRequest(captureRequest, null, null)mHandler.removeMessages(CAMERA_RELEASE)mHandler.sendEmptyMessageDelayed(CAMERA_RELEASE,delayTwoSeconds)} catch (e: CameraAccessException) {Log.e(TAG,"createCaptureRequest error = " + e.message)}}override fun onConfigureFailed(session: CameraCaptureSession) {Log.e(TAG, "onConfigureFailed")LogUtils.e("Camera2异常")Toast.makeText(requireContext(),"Camera2异常,请检查设备!", Toast.LENGTH_LONG).show()}},null)} catch (e: CameraAccessException) {Log.e(TAG, "createCaptureSession error = " + e.message)}}override fun onDisconnected(camera: CameraDevice) {Log.e(TAG,"StateCallback! onDisconnected camera.getId() = " + camera.id)releaseCamera()}override fun onError(camera: CameraDevice, error: Int) {Log.e(TAG,"StateCallback camera.getId() = " + camera.id + " , error = " + error)LogUtils.e("Camera2异常")Toast.makeText(requireContext(),"Camera2异常,请检查设备!", Toast.LENGTH_LONG).show()releaseCamera()}}

4、一开始花屏抓的logcat 错误如下

5、最后花屏问题解决了 同时为了确认 adb shell dumpsys media.camera 查看当前系统支持输出分辨率列表  如下图所示

6、安装一个骁龙相机源码 大多数分辨率都是支持的,所以再次确认花屏是分辨率问题导致。

7、大家如果实在没有办法可以先从大的分辨率 跟小的去试 这样可能验证更快一些,其他不啰嗦了。就是简单记录下自己踩的坑而已。

转载请注明出处,谢谢!

8 、总结:

1、camera 8.1 架构与Camx有很大差异

2、遇到问题学会交叉编译验证 尤其是这种花屏问题 首先想到硬件或者分辨率的问题(这个需要经验积累)

 

3、网上查资料以及adb shell dumpsys media.camera确定camera sensor是否正常挂载

4、多尝试 多修改

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/72934.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在UI设计中用什么样的字体?优漫动游

在windos下支持的字体 在UI设计中用什么样的字体&#xff1f; 宋体&#xff08;simsun&#xff09;&#xff1a;在win下大部分的浏览器是默认的&#xff0c;适合小字号&#xff0c;不太适合大字号。 微软雅黑&#xff1a;是目前win浏览器中最值得使用的。 Arial&#…

算法通关村——滑动窗口高频问题

1. 无重复字符的最长子串 给定一个字符串 s &#xff0c;请你找出其中不含有重复字符的 最长子串 的长度。 示例 1: 输入: s “abcabcbb” 输出: 3 解释: 因为无重复字符的最长子串是 “abc”&#xff0c;所以其长度为 3。 1.1 滑动窗口 找到最长字串需要找到字串的首尾位置…

c++保留n位小数输出(百分数形式,保留n位有效数字,设置宽度)

在C中&#xff0c;你可以使用 头文件中的一些函数和控制符来控制输出的小数位数、百分数形式以及设置宽度。下面我将详细讲解如何实现这些功能。 控制小数位数 若要在输出中控制小数位数&#xff0c;你可以使用 std::setprecision 函数。这个函数接受一个整数参数&#xff0c…

多组背包恰好装满方案数

链接&#xff1a;登录—专业IT笔试面试备考平台_牛客网 来源&#xff1a;牛客网 现在有一个大小n*1的收纳盒&#xff0c;我们手里有无数个大小为1*1和2*1的小方块&#xff0c;我们需要用这些方块填满收纳盒&#xff0c;请问我们有多少种不同的方法填满这个收纳盒 分析&…

关于 Unity 连接 MuMu 模拟器上的 Unity Remote 5 的方法

在使用 Unity 开发 Android 的过程中&#xff0c;可以通过使用 Unity Remote 这个 app 来和真机连接&#xff0c;进而在真实环境下进行测试性能等工作&#xff0c;而本次则是由于其他问题引出的一个小坑&#xff0c;记录以备后续查询。 这次是由于在自学过程中遇到的一个工程&…

MyBatisPlus枚举类最佳实践(非常典型和高效的枚举类写法)

目录 1、MyBatisPlus枚举类最佳实践 2、枚举类的作用及问题 3、MyBatisPlus注解实现枚举最佳实践 4、简单来说 5、下面我们看一个使用上述注解的完整枚举类示例: &#xff08;1&#xff09;枚举类&#xff1a; &#xff08;2&#xff09;DTO类&#xff1a; 6、根据上面…

Python - 队列【queue】task_done()和join()基本使用

一. 前言 task_done()是Python中queue模块提供的方法&#xff0c;用于通知队列管理器&#xff0c;已经处理完了队列中的一个项目。 queue.task_done()是Queue对象的一个方法&#xff0c;它用于通知Queue对象&#xff0c;队列中的某一项已经被处理完毕。通常在使用Queue对象时…

异步编程 - 13 高性能线程间消息传递库 Disruptor

文章目录 Disruptor概述Disruptor中的核心术语Disruptor 流程图 Disruptor的特性详解基于Disruptor实现异步编程 Disruptor概述 Disruptor是一个高性能的线程间消息传递库&#xff0c;它源于LMAX对并发性、性能和非阻塞算法的研究&#xff0c;如今构成了其Exchange基础架构的核…

探究IP路由的工作原理与路由表查找规则

文章目录 一、定义二、IP连通的前提三、路由表1. 作用2. 路由表字段内容3. 路由表查表规则4. 路由信息的来源5. 路由表写表规则6. 路由优先级 四、常用命令 首先可以看下思维导图&#xff0c;以便更好的理解接下来的内容。 一、定义 路由器是网络中负责将数据报文在不同IP网段…

git在linux情况下设置git 命令高亮

只需要执行下面这个命令&#xff0c;这样就可以在查看git status明亮的时候高亮显示。 git config --global color.status auto未设置前 谁知之后

linux中常见服务端安装

linux安装服务脚本 1、yum安装 # 通过apt安装yum apt install yum # yum安装软件 yum install pam-devel # yum 卸载 yum remove pam-devel2、rpm安装 # 安装 rpm -i example.rpm #安装 example.rpm 包&#xff1b; rpm -iv example.rpm #安装 example.rpm 包并在安装过程…

【Unity3D赛车游戏优化篇】【八】汽车实现镜头的流畅跟随,以及不同角度的切换

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;元宇宙-秩沅 &#x1f468;‍&#x1f4bb; hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍&#x1f4bb; 本文由 秩沅 原创 &#x1f468;‍&#x1f4bb; 收录于专栏&#xff1a;Uni…

Redis功能实战篇之附近商户

在互联网的app当中&#xff0c;特别是像美团&#xff0c;饿了么等app。经常会看到附件美食或者商家&#xff0c; 当我们点击美食之后&#xff0c;会出现一系列的商家&#xff0c;商家中可以按照多种排序方式&#xff0c;我们此时关注的是距离&#xff0c;这个地方就需要使用到我…

高等数学笔记

|sinx|连续不可导 只要在x0处存在极限且极限等于f(x0)则函数在此处连续 如果某点可导则左右导数应该相等&#xff08;可导一定连续&#xff0c;连续不一定可导&#xff09; 双曲函数的由来 塞入dx 莱布尼茨公式 sin(nx)的k次导n^k*sin(nxkΠ/2) 注意符号&#xff01; 二阶导公…

Golang源码分析

Golang源码分析 Golang源码分析-builtin.goGolang源码分析-bytes.goGolang源码分析-bytes/buffer.goGolang源码分析-bytes/reader.goGolang源码分析-strings.goGolang源码分析-strings builder.goGolang源码分析-strconv包Golang源码分析-io.goGolang源码分析-io/pipe.goGolan…

树的基本概念和存储结构

一、树的基本概念 1、树的定义 树是n&#xff08;n>0&#xff09;个结点的有限集。当n 0时&#xff0c;称为空树。在任意一棵非空树中应满足&#xff1a; 1、有且仅有一个特定的称为根的结点。 2、当n>1时&#xff0c;其余节点可分为m&#xff08;m>0&#xff09…

中移粤港澳大湾区创新研究院、南湖研究院类脑实验室面试(部分)

中移粤港澳大湾区创新研究院 reids热key的高并发量&#xff0c;导致此redis节点的cpu使用率爆满&#xff0c;有什么优化方案&#xff1f;高并发情况下为了保证平台正常运行&#xff0c;怎么设置平台的监控和告警 南湖研究院类脑实验室 笔试通过后&#xff0c;面试无后续

Zookeeper简述

数新网络-让每个人享受数据的价值 官网现已全新升级—欢迎访问&#xff01; 前 言 ZooKeeper是一个开源的、高可用的、分布式的协调服务&#xff0c;由Apache软件基金会维护。它旨在帮助管理和协调分布式系统和应用程序&#xff0c;提供了一个可靠的平台&#xff0c;用于处理…

Qt配置使用MSVC编译器

Qt配置使用MSVC编译器_qt msvc-CSDN博客注意:Qt支持的MSVC就是2017和2015&#xff0c;所以vs也要下载2017&#xff0c;不要直接用最新的&#xff0c;安装路径都用默认的。程序运行失败时可以尝试windeployqt拷贝库文件到本地&#xff0c;然后有可能就能运行了。VS官网下载Visua…

一个帮各位填秋招表格省一点事的浏览器插件

最近应该很多和我一样的双非鼠鼠在秋招等面试&#xff0c;而且处于海投阶段&#xff0c;为了不忘记投了哪些公司&#xff0c;可以用这样一个表格来记录&#xff1a; 其中有些字段&#xff0c;比如状态、投递时间、查看进度的网址其实可以不手动输入&#xff0c;所以搞个插件来…