捕获多张照片 [英] Capturing Multiple Photos

查看:118
本文介绍了捕获多张照片的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经成功地捕捉到了一张照片在Android中使用的摄像头。但是,当我试图捕捉5张照片一次,应用程序停止响应,摄像头preVIEW变成绿色,并没有保存照片。我在堆栈跟踪看到的是如下(部分)

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:   信息/ QualcommCameraHardware(19268):   DEINIT preVIEWē03-17 14:19:54.804:   信息/ QualcommCameraHardware(19268):   DEINIT preVIEW X 03-17 14:19:54.804:   DEBUG / QualcommCameraHardware(19268):   frame_thread X 03-17 14:19:54.834:   DEBUG / QualcommCameraHardware(19268):   snapshot_threadË03-17 14:19:54.854:   DEBUG / CameraService(19268):   takePicture(PID 20509)03-17   14:19:54.884:   WARN / AudioFlinger(19268):写   阻塞85毫秒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Ë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_en code:   jpeg_en coder_en code失败。 03-17   14:19:56.074:   ERROR / QualcommCameraHardware(19268):   JPEG编码失败03-17   14:19:56.084:   DEBUG / QualcommCameraHardware(19268):   snapshot_thread X 03-17 14:19:56.154:   信息/ DEBUG(19267): *的 * 的* *的   * 的* *的 * 的* *的 * 的* *的 * 的*的 * 的03-17 14:19:56.164:信息/ DEBUG(19267):建立指纹:   google_ion / google_ion /蓝/蓝宝石:1.6 / DRC83 / 14721:用户/ ADP,测试键   03-17 14:19:56.164:信息/ DEBUG(19267):   PID:19268,TID:20813 >>>   /系统/斌/媒体服务器   ...   ...   ...   14:19:59.894:信息/的ServiceManager(46):   服务media.camera死亡03-17   14:19:59.894:WARN /摄像机(20509):   相机服务器死了! 03-17   14:19:59.894:WARN /摄像机(20509):   ICamera死亡03-17 14:19:59.894:   ERROR /摄像机(20509):错误100 03-17   14:19:59.915:WARN / AudioSystem(71):   AudioFlinger服务器死了! 03-17   14:20:00.014:信息/工艺(71):   发送信号。 PID:18636 SIG:3   03-17 14:20:00.054:   信息/ 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);
}

我这样做是对的HTC Magic运行Android 1.6。我想,我是用了错误的方式,采取多张照片。 什么是使用Android摄像头的API来获取多张照片的正确方法?

推荐答案

我没有找到任何这API的支持。并多次调用 takePicture从环方法是行不通的。所以,我得到一个解决方法。在code仍然在循环,但我现在用的螺纹;

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天全站免登陆