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

这篇具有很好参考价值的文章主要介绍了Android高通 8.1 老化apk打开摄像头花屏问题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

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

Android高通 8.1 老化apk打开摄像头花屏问题,Android 那些年踩的坑整理,android

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!!.surfaceTexture
                    surfaceTexture.setDefaultBufferSize(1280, 720) //3264X2448(800万)
                    val surface = Surface(surfaceTexture)
                    val previewList = ArrayList<Surface>()
                    previewList.add(surface)
                    try {
                        // 6.将TextureView的surface传递给CameraDevice
                        mCameraDevice2!!.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 错误如下

Android高通 8.1 老化apk打开摄像头花屏问题,Android 那些年踩的坑整理,android

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

Android高通 8.1 老化apk打开摄像头花屏问题,Android 那些年踩的坑整理,android

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

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

转载请注明出处,谢谢!

8 、总结:

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

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

 

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

4、多尝试 多修改文章来源地址https://www.toymoban.com/news/detail-696810.html

到了这里,关于Android高通 8.1 老化apk打开摄像头花屏问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 电脑微信视频摄像头怎么打开 微信视频聊天怎么打开电脑摄像头

    最近有用户在使用电脑微信视频聊天的时候,不知道怎么打开电脑摄像头的权限,今天小编就给大家带来了微信视频聊天打开电脑摄像头的具体方法。无论你是台式电脑还是联想、戴尔、华硕、华为等品牌都可以使用本文的方法,有需要的用户们赶紧来看一下吧。 电脑微信视

    2024年02月06日
    浏览(49)
  • ubuntu打开usb摄像头

    记录一下解决在 Linux 下打开 usb 摄像头界面黑屏的问题。 1、保持在 ubuntu 界面,插上 usb 摄像头,将 usb 摄像头连接到虚拟机上。 2、使用 dmesg 命令可以看到设备接入时的打印信息 可以看到我们刚接入的摄像头它的 VID:PID 是 1e4e:0110,这里的 ID 号可以在 UVC 官方的文档中进一步

    2024年02月16日
    浏览(48)
  • 通过Opencv打开指定摄像头的方法

    我们使用Opencv打开摄像头,一般是使用VideoCapture的open接口。 open接口要传入一个标识符,如果只有1个摄像机,那么就是0,如果系统中有多个摄像机,那么只要将其向上增加即可。 系统: 银河麒麟linux系统 问题: 现在我插入了一个双目摄像头(两个USB线,一个彩色,一个红

    2024年02月13日
    浏览(53)
  • Pyqt5打开电脑摄像头进行拍照

    目录 1、设计UI界面 2、设计逻辑代码,建立连接显示窗口 3、结果 1、设计UI界面 将ui界面转为py文件后获得的逻辑代码为:(文件名为  Camera.py ) 2、设计逻辑代码,建立连接显示窗口 逻辑代码如下:(文件名为 Camera_main.py ) 3、结果 参考:暂未成功人士

    2024年02月12日
    浏览(47)
  • 树莓派——opencv打开树莓派摄像头调试记录

    目录 一、安装包:(注意换要源,不要用系统默认源) 问题1:磁盘空间不足——把根目录扩展到整个SD卡 解决:把根目录扩展到整个SD卡 二、下载 1、先创建opencv目录: 2、下载 问题:fatal: unable to access \\\'https://github.com/opencv/opencv.git/\\\': gnutls_handshake() failed: The TLS connection was

    2024年02月11日
    浏览(46)
  • 使用PYQT5打开电脑摄像头并进行拍照

    目录 1 UI界面的布局 2 UI界面布局对应的代码 3 打开电脑摄像头等功能的完整代码 4 一些代码函数和优化界面代码 5 最终效果 下图是简单设计的一个UI控制的输出可视化界面。       其中, 摄像头图片显示 使用的是左边功能的 label 类、 打开摄像头拍照关闭摄像头导出图片

    2023年04月21日
    浏览(42)
  • ubuntu利用usb_cam打开摄像头

    想要标定多个相机,首先得把相机打开吧,usb_cam是针对usb摄像头的ros驱动包,简单来说就是得有这个功能包,才能在ros中把摄像头打开。 首先打开终端,输入: 这里melodic应该根据自己Ubuntu系统进行灵活变换,例如我使用的Ubuntu18.04,那么我对应的就是melodic版本。 驱动安装

    2024年02月03日
    浏览(45)
  • Opencv(C++)系列学习---读取视频文件和打开摄像头

    今天学习的这两个内容比较简单,话不多说,直接上代码! 目录 【1】读取视频文件 【2】摄像头读取视频 运行结果:  这段代码较为简单,有兴趣的同学也可以挑战一下,在视频读取上加个进度条,可以通过鼠标拖动进度条到指定位置,像平时我们用的视频播放器一样,主

    2024年02月16日
    浏览(51)
  • Android相机调用-CameraX【外接摄像头】【USB摄像头】

    Android相机调用有原生的Camera和Camera2,我觉得调用代码都太复杂了,CameraX调用代码简洁很多。 说明文档:https://developer.android.com/jetpack/androidx/releases/camera?hl=zh-cn 现有查到的调用资料都不够新,对于外接摄像头(USB摄像头)这类非前置也非后置摄像头的设备调用,都说是没有实

    2024年02月09日
    浏览(52)
  • android 13.0 Camera2 去掉后置摄像头 仅支持前置摄像头功能

    在定制化13.0系统rom定制化开发中,当产品只有一个前置摄像头单摄像头,这时调用相机时就需要默认打开前置摄像头就需要来看调用摄像头这块的代码,屏蔽掉后置摄像头的调用api就可以了,接下来就来具体实现相关功能的开发 Camera2 API 概述 Camera2 API的包名是android.hardware

    2024年01月21日
    浏览(62)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包