camera拍照过程中花屏问题
来源:互联网 发布:tf idf算法python实现 编辑:程序博客网 时间:2024/05/16 11:31
在以前做的一个对产品的综合测试程序中,最近测到的一个低概率出现的问题。程序测试了产品各项功能,包括相机。拍照是通过一个定时器切换两路摄像头并拍照,然后在onPictrueTaken()方法中处理数据,之后再重新startPreview()。
花屏的问题重现不容易,有时出现了发现时已经过了一段时间,不能现场抓取log。这时可以在/data/anr/traces.txt中碰碰运气,它记录了整个系统中ANR及死锁发生时进程和线程的一些信息,或许可以找到蛛丝马迹。运气不错,可以看到是onPictureTaken()之后startPreview时的异常
----- pid 3203 at 2014-05-09 11:22:44 -----Cmd line: com.lyt.brtest_func04DALVIK THREADS:(mutexes: tll=0 tsl=0 tscl=0 ghl=0 hwl=0 hwll=0)"main" prio=5 tid=1 NATIVE | group="main" sCount=1 dsCount=0 obj=0x4001f188 self=0xce70 | sysTid=3203 nice=0 sched=0/0 cgrp=default handle=-1345006528 at android.hardware.Camera.startPreview(Native Method) at com.lyt.brtest_func04.Br_test_funcActivity.onPictureTaken(Br_test_funcActivity.java:312) at android.hardware.Camera$EventHandler.handleMessage(Camera.java:529) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:123) at android.app.ActivityThread.main(ActivityThread.java:3647) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:507) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) at dalvik.system.NativeStart.main(Native Method)
外国友人也遇到了同样的问题:
I checked in SecCameraHWInterface.cpp and mCaptureInProgress is still set to true when calling different callbacks. mCaptureInProgress is checked when calling startPreview and returning an error if value is true.Problem is we don't have any information to check if pictureThread() is terminated or not before to restart preview.
原来这里我加了500ms的延时,如果在onPictureTaken()中不加任何延时会立即得到这样的错误:
05-15 10:32:41.363: E/CameraHardwareSec(68): virtual android::status_t android::CameraHardwareSec::startPreview() : capture in progress, not allowed05-15 10:32:41.367: E/AndroidRuntime(3411): FATAL EXCEPTION: main05-15 10:32:41.367: E/AndroidRuntime(3411): java.lang.RuntimeException: startPreview failed05-15 10:32:41.367: E/AndroidRuntime(3411): at android.hardware.Camera.startPreview(Native Method)05-15 10:32:41.367: E/AndroidRuntime(3411): at com.lyt.brtest_func04.Br_test_funcActivity.onPictureTaken(Br_test_funcActivity.java:310)05-15 10:32:41.367: E/AndroidRuntime(3411): at android.hardware.Camera$EventHandler.handleMessage(Camera.java:529)05-15 10:32:41.367: E/AndroidRuntime(3411): at android.os.Handler.dispatchMessage(Handler.java:99)05-15 10:32:41.367: E/AndroidRuntime(3411): at android.os.Looper.loop(Looper.java:123)05-15 10:32:41.367: E/AndroidRuntime(3411): at android.app.ActivityThread.main(ActivityThread.java:3647)05-15 10:32:41.367: E/AndroidRuntime(3411): at java.lang.reflect.Method.invokeNative(Native Method)05-15 10:32:41.367: E/AndroidRuntime(3411): at java.lang.reflect.Method.invoke(Method.java:507)05-15 10:32:41.367: E/AndroidRuntime(3411): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)05-15 10:32:41.367: E/AndroidRuntime(3411): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)05-15 10:32:41.367: E/AndroidRuntime(3411): at dalvik.system.NativeStart.main(Native Method)
暂时没办法,只能通过加长等待时间来避免这个问题。或者修改系统源码通过广播来获悉 pictureThread()结束,然后再开始预览。此处我修改为2s延时,开始测试,后续提供测试结果。
0 0
- camera拍照过程中花屏问题
- Camera拍照声音消除问题
- android Camera 拍照的两个问题
- android Camera 拍照的两个问题
- Camera 拍照
- camera 拍照
- Android调用Camera API拍照遇到的问题和解决方法
- Android系统Camera参数设置&&Android之Camera拍照 && Android之Camera预览过程中插拔摄像头节点后移
- camera.takePicture拍照案例
- 修改camera拍照图片尺寸
- camera.takePicture拍照案例
- android camera 后台拍照
- 通过Camera进行拍照
- USB Camera 预览 拍照
- Android Camera进行拍照
- 采用camera拍照
- Android之Camera拍照
- android Camera拍照
- OCP 1Z0 051 19
- IOS 之模拟网易新闻主页的滚动效果
- 基于CSerialPort修改类的串口调试助手源代码(支持中文、自动保存等)
- stm32f103中文资料
- 客户/服务器
- camera拍照过程中花屏问题
- ASP.NET cookie设置过期问题
- spring框架整合ibatis的项目实例代码
- excel满足多个条件的个数
- MyEclipse10 的准确破解方法
- 表格单元格td设置宽度无效的解决办法
- 揭开BS架构酒店管理软件的面纱
- 构造函数与析构函数
- js小结