【问题标题】:problem with taking pictures using the android camera使用安卓相机拍照的问题
【发布时间】:2011-08-31 14:27:30
【问题描述】:

我有一个应用程序,我正在使用安卓相机拍照。我已经构建了自己的安卓相机。照片是通过按一个按钮来拍照的。

类似这样的:

  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();

        }
    }
};

拍完照片后,我使用一个意图并将字节发送到另一个活动。

最大的问题是,如果我通过按下按钮一张一张地拍摄多张照片,我的应用程序会在此行崩溃:

mCamera.takePicture(null, mPictureCallback, mPictureCallback);

这就是我的 logcat 的样子:

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)

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

编辑:我也试过了:

mCamera.takePicture(null, null, mPictureCallback);

但是拍了几张就崩溃了!!!

!!!!!!!!!这是我的整个代码: http://pastebin.com/0U1pQSak

【问题讨论】:

    标签: android android-camera


    【解决方案1】:

    请确保您在拍照后再次致电Camera.startPreview()。

    8) 拍照后,预览显示将停止。采取 更多照片,请先再次调用 startPreview()。

    from the Camera class documentation

    【讨论】:

    • 相机的全部代码我已经放了!你能看一下吗!
    猜你喜欢
    • 1970-01-01
    • 2011-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多