捕获多张照片时出现的问题:应用程序停止响应,相机预览变为绿色并且没有保存图片

Mud*_*sir 4 camera android

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

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):写入阻塞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 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失败.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:INFO/DEBUG( 19267):**** ************ 03-17 14:19:56.164:INFO/DEBUG(19267):构建指纹:'google_ion/google_ion /蓝宝石/蓝宝石: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'死于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:ERROR/Camera(20509):错误100 03-17 14:19:59.915:WARN/AudioSystem(71 ):AudioFlinger服务器死了!03-17 14:20:00.014:INFO/Process(71):发送信号.PID:18636 SIG:3 03-17 14:20:00.054:INFO/dalvikvm(18636):threadid = 7:对信号3作出反应

takePicture在一个循环中调用该方法来捕获多张照片;

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

    mPrimCamera.takePicture(null, mPictureCallbackMet, mPictureCallbackMet);
}
Run Code Online (Sandbox Code Playgroud)

我在运行Android 1.6的HTC Magic上做这个.我想,我用错误的方式拍多张照片.使用Android Camera API捕获多张照片的正确方法是什么?

Ren*_*eno 10

我不确定android api是否支持突发模式.有一件事是肯定的,你不能只是takePicture()在这样的循环中调用.那只是滥用那些可怜的api.

拍下一张照片onPictureTaken()怎么样?(显然你必须跟踪拍摄的照片数量......)

也就像文档说的那样,不要认为它可以在每个设备上运行.

我在2011年写了上面的答案,从那时起Camera已经发展了

编辑:Camera2现在支持突发模式:https://developer.android.com/reference/android/hardware/camera2/package-summary.html

请参阅https://developer.android.com/reference/android/hardware/camera2/CameraCaptureSession.html