问题与使用Android相机拍照相机、问题、Android

2023-09-13 01:16:04 作者:撒手↘也是幸福

我有一个应用程序在那里我使用了Android相机拍摄pictures.I已经建立了自己的Andr​​oid camera.And照片是由pressing一个按钮。

I have an app where I'm using the android camera to take pictures.I have built my own android camera.And pictures are taken by pressing a button.

事情是这样的:

  public void onClick(View arg0) {
  mCamera.takePicture(null, mPictureCallback, mPictureCallback);
  }


Camera.PictureCallback mPictureCallback = new Camera.PictureCallback() {
    public void onPictureTaken(byte[] imageData, Camera c) {

        if (imageData != null) {
            Intent mIntent = new Intent();


            Bundle b = new Bundle();
            b.putByteArray("imageData", imageData);
            Intent i = new Intent(mContext, ViewPhoto.class);
            i.putExtras(b);
            startActivity(i);

            setResult(FOTO_MODE, mIntent);
            finish();

        }
    }
};

在拍摄照片后我使用意图和发送的字节数到另一个活动。

Once the picture is taken I use an intent and send the bytes to another activity.

最大的问题是,如果我把多张照片,一个个由pressing按钮,我的应用程序崩溃,在这一行:

The big problem is that if I take several photos, one by one by pressing the button, my app crashes at this line:

mCamera.takePicture(null, mPictureCallback, mPictureCallback);

这是我的logcat的样子:

This is how my logcat looks like:

java.lang.RuntimeException: takePicture failed
at android.hardware.Camera.native_takePicture(Native Method)
at android.hardware.Camera.takePicture(Camera.java:746)
at android.hardware.Camera.takePicture(Camera.java:710)
at com.Xperiaproject.TakePhoto.onClick(TakePhoto.java:216)
at android.view.View.performClick(View.java:2534)
at android.view.View$PerformClick.run(View.java:9210)
at android.os.Handler.handleCallback(Handler.java:587)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:123)
at android.app.ActivityThread.main(ActivityThread.java:3701)
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:862)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:620)
at dalvik.system.NativeStart.main(Native Method)

不知道如何解决这个问题?

Any idea how to solve this?

编辑:我也试着:

mCamera.takePicture(null, null, mPictureCallback);

但崩溃后几张照片!

but crashes after several pictures!!!

!!!!!!!!这就是我的整个code: http://pastebin.com/0U1pQSak

!!!!!!!!This is my whole code: http://pastebin.com/0U1pQSak

推荐答案

请确保您调用 Camera.start preVIEW()您已经采取后再次图片。

Make sure that you call Camera.startPreview() again after you have taken a picture.

8)拍摄照片后,preVIEW显示将停止。采取   更多的照片,调用start preVIEW()再次第一。

8) After taking a picture, preview display will have stopped. To take more photos, call startPreview() again first.

从相机类文档