camera preview xml 클래스를 만들어서 사용중입니다.
onPause()를 호출하게 되면 camera open이 해제되지 않아 ..
다시 화면을 호출하거나 종료되고나면
camera null point 에러가 발생합니다.
camera를 종료 및 재시작 어떻게 해야되나요 ??
소스 내용입니다.
package com.android.testsurfaceview;
import android.content.Context;
import android.hardware.Camera;
import android.util.AttributeSet;
import android.util.Log;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import java.io.IOException;
/**
* Created by extriple on 2016-01-18.
*/
public class TestCameraView extends SurfaceView implements SurfaceHolder.Callback {
//홀더와 카메라 멤버필드
private SurfaceHolder mSurfaceHolder;
private Camera mCamera;
public TestCameraView(Context context, AttributeSet attrs) {
super(context, attrs);
mSurfaceHolder = getHolder();
mSurfaceHolder.addCallback(this);
mSurfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
}
public TestCameraView(Context context) {
super(context);
}// end constructor
@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
mCamera.startPreview();
}
@Override
public void surfaceCreated(SurfaceHolder holder) {
mCamera = Camera.open();
try {
Camera.Parameters params = mCamera.getParameters();
params.setFocusMode(Camera.Parameters.FOCUS_MODE_CONTINUOUS_PICTURE);
mCamera.setParameters(params);
mCamera.setPreviewDisplay(mSurfaceHolder);
} catch (IOException e) {
e.printStackTrace();
mCamera.release();
mCamera = null;
}
}
@Override
public void surfaceDestroyed(SurfaceHolder holder) {
mCamera.setPreviewCallback(null);//콜백 null초기화
mCamera.stopPreview();//뷰정지
mCamera.release();//카메라 자원해제
mCamera = null;//카메라 객체 null초기화
Log.e("############","cameraRelease");
}
}