0

そこで、アプリを開いた瞬間に写真を撮るアプリを作ろうとしています。それを行うコードを実行すると、次のエラーが発生します

Caused by: java.lang.RuntimeException: takePicture failed
    at android.hardware.Camera.native_takePicture(Native Method)
    at android.hardware.Camera.takePicture(Camera.java:1141)
    at android.hardware.Camera.takePicture(Camera.java:1086)
    at com.me.phonespy.StealthActivity.takePic(StealthActivity.java:110)
    at com.me.phonespy.StealthActivity.go(StealthActivity.java:116)

コード:

public class StealthActivity extends Activity implements PictureCallback {
Camera cam;
FrameLayout preview;        
CamPreview camPreview;
File pictureFile;
Bitmap bmp;
Matrix matrix;
Button pb;

protected void onCreate(Bundle savedInstanceState) 
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_stealth);
    initCamPreview();
    pb= (Button) findViewById(R.id.button1);


}
@Override
public void onResume()
{
    super.onResume();
    pb.performClick();
}

@Override
public void onDestroy()
{

    releaseCameraAndPreview();

    super.onDestroy();
}

@Override
protected void onPause()
{
    super.onPause();

    preview.removeAllViews();
}
void initCamPreview()
{
    cam=openFrontFacingCameraGingerbread();
    cam.setDisplayOrientation(90);
    preview= (FrameLayout) findViewById(R.id.preview);
    camPreview= new CamPreview(this, cam);
    camPreview.setSurfaceTextureListener(camPreview);
    preview.addView(camPreview);
}

private void releaseCameraAndPreview() {
    if (cam != null) {
        cam.release();
        cam = null;
    }
}void takePic()
{
    cam.takePicture(null, null, this);

}

public void go(View view)
{
    takePic();

}


@Override
public void onPictureTaken(byte[] data, Camera camera)
{
      //handles saving image
     }

orを入れると同じ takePicture が失敗しcam.takePicture(null, null, this);ましたが、呼び出すボタンを押すと機能し、写真を撮りますonResumeonCreatego(View view)

何か案は??

4

1 に答える 1