捕获多张照片时出现问题:应用程序停止响应,相机预览变成绿色,并且没有照片被保存 [英] Issues when capturing Multiple Photos: app stops responding, camera preview turns to green and no picture is saved

查看:145
本文介绍了捕获多张照片时出现问题:应用程序停止响应,相机预览变成绿色,并且没有照片被保存的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经使用Android中的相机成功捕获了单张照片.但是,当我尝试一次捕获5张照片时,应用程序停止响应,相机预览变成绿色,并且没有照片被保存.我在堆栈跟踪中看到的内容如下(部分)

I have successfully captured the single photo using camera in Android. But when I tried to capture 5 photos at once, app stops responding, camera preview turns to green and no picture is saved. What I saw in stack trace is as follows (partial)

03-17 14:19:54.804: INFO/QualcommCameraHardware(19268): deinitPreview E 03-17 14:19:54.804: INFO/QualcommCameraHardware(19268): deinitPreview X 03-17 17:19:54.804: DEBUG/QualcommCameraHardware(19268): frame_thread X 03-17 14:19:54.834: DEBUG/QualcommCameraHardware(19268): snapshot_thread E 03-17 14:19:54.854: 调试/CameraService(19268): takePicture(pid 20509)03-17 14:19:54.884: WARN/AudioFlinger(19268):写 封锁85毫秒03-17 14:19:55.154: 调试/CameraService(19268): postShutter 03-17 14:19:55.284: DEBUG/CameraService(19268):postRaw 03-17 14:19:55.314: DEBUG/QualcommCameraHardware(19268): snapshot_thread X 03-17 14:19:55.344: DEBUG/QualcommCameraHardware(19268): snapshot_thread E 03-17 14:19:55.364: 调试/CameraService(19268): takePicture(pid 20509)03-17 14:19:55.984: 调试/CameraService(19268): postShutter 03-17 14:19:56.064: DEBUG/CameraService(19268):postRaw 03-17 14:19:56.074: 错误/QualcommCamera硬件(19268): native_jpeg_encode: jpeg_encoder_encode失败. 03-17 14:19:56.074: 错误/QualcommCamera硬件(19268): jpeg编码失败03-17 14:19:56.084: DEBUG/QualcommCameraHardware(19268): snapshot_thread X 03-17 14:19:56.154: INFO/DEBUG(19267): * * * * * * * * * * * * * * * * 03-17 14:19:56.164:INFO/DEBUG(19267):构建指纹: 'google_ion/google_ion/sapphire/sapphire:1.6/DRC83/14721:user/adp,test-keys' 03-17 14:19:56.164:INFO/DEBUG(19267): pid:19268,tid:20813 >>> /system/bin/mediaserver ... ... ... 14:19:59.894:INFO/ServiceManager(46): 服务"media.camera"死亡03-17 14:19:59.894:WARN/Camera(20509): 相机服务器死了! 03-17 14:19:59.894:WARN/Camera(20509): ICamera于03-17 14:19:59.894去世: 错误/相机(20509):错误100 03-17 14:19:59.915:警告/音频系统(71): AudioFlinger服务器死了! 03-17 14:20:00.014:INFO/Process(71): 正在发送信号. PID:18636 SIG:3 03月17日14:20:00.054: INFO/dalvikvm(18636):线程ID = 7: 对信号3做出反应

03-17 14:19:54.804: INFO/QualcommCameraHardware(19268): deinitPreview E 03-17 14:19:54.804: INFO/QualcommCameraHardware(19268): deinitPreview X 03-17 14:19:54.804: DEBUG/QualcommCameraHardware(19268): frame_thread X 03-17 14:19:54.834: DEBUG/QualcommCameraHardware(19268): snapshot_thread E 03-17 14:19:54.854: DEBUG/CameraService(19268): takePicture (pid 20509) 03-17 14:19:54.884: WARN/AudioFlinger(19268): write blocked for 85 msecs 03-17 14:19:55.154: DEBUG/CameraService(19268): postShutter 03-17 14:19:55.284: DEBUG/CameraService(19268): postRaw 03-17 14:19:55.314: DEBUG/QualcommCameraHardware(19268): snapshot_thread X 03-17 14:19:55.344: DEBUG/QualcommCameraHardware(19268): snapshot_thread E 03-17 14:19:55.364: DEBUG/CameraService(19268): takePicture (pid 20509) 03-17 14:19:55.984: DEBUG/CameraService(19268): postShutter 03-17 14:19:56.064: DEBUG/CameraService(19268): postRaw 03-17 14:19:56.074: ERROR/QualcommCameraHardware(19268): native_jpeg_encode: jpeg_encoder_encode failed. 03-17 14:19:56.074: ERROR/QualcommCameraHardware(19268): jpeg encoding failed 03-17 14:19:56.084: DEBUG/QualcommCameraHardware(19268): snapshot_thread X 03-17 14:19:56.154: INFO/DEBUG(19267): * ** * ** * ** * ** * ** * 03-17 14:19:56.164: INFO/DEBUG(19267): Build fingerprint: 'google_ion/google_ion/sapphire/sapphire:1.6/DRC83/14721:user/adp,test-keys' 03-17 14:19:56.164: INFO/DEBUG(19267): pid: 19268, tid: 20813 >>> /system/bin/mediaserver ... ... ... 14:19:59.894: INFO/ServiceManager(46): service 'media.camera' died 03-17 14:19:59.894: WARN/Camera(20509): Camera server died! 03-17 14:19:59.894: WARN/Camera(20509): ICamera died 03-17 14:19:59.894: ERROR/Camera(20509): Error 100 03-17 14:19:59.915: WARN/AudioSystem(71): AudioFlinger server died! 03-17 14:20:00.014: INFO/Process(71): Sending signal. PID: 18636 SIG: 3 03-17 14:20:00.054: INFO/dalvikvm(18636): threadid=7: reacting to signal 3

我正在循环调用takePicture方法来捕获多张照片;

I am calling the takePicture method in a loop to capture multiple photos;

for(int m = 0 ; m < 6; m++) {

    mPrimCamera.takePicture(null, mPictureCallbackMet, mPictureCallbackMet);
}

我正在运行Android 1.6的HTC Magic上执行此操作.我认为我使用错误的方式拍摄多张照片. 使用Android Camera API捕获多张照片的正确方法是什么?

I am doing this on HTC Magic running Android 1.6. I think, I am using the wrong way to take multiple photos. What is the correct way to capture multiple photos using Android Camera API?

推荐答案

我没有为此提供任何API支持.并且从循环中反复调用takePicture方法不起作用.因此,我得到了一种解决方法.代码仍在循环中,但我现在使用的是Thread;

I didn't find any API support for this. And repeatedly calling the takePicture method from the loop is not working. So, I get a workaround. The code is still in loop but I'm now using Thread;

private class CaptureThread extends Thread {

        @Override
        public void run() {

            int count = 0;

            while(count < mNo) {
                mFileName = mLocation + "/pic" + count + ".jpg";

                mCamera.takePicture(null, mPictureCallback, mPictureCallback);

                count++;

                try {
                    Thread.sleep(3000);
                } catch (InterruptedException exception) {
                    exception.printStackTrace();
                }
            }
        }
}

这篇关于捕获多张照片时出现问题:应用程序停止响应,相机预览变成绿色,并且没有照片被保存的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆