아래가 소스입니다...
에러는 없는데 앱이 종료됩니다
btn_exit는 액티비티 종료에요..
import android.app.Activity;
import android.graphics.Camera;
import android.hardware.camera2.CameraDevice;
import android.media.MediaRecorder;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import android.view.View;
import android.widget.Button;
import java.io.IOException;
import java.util.List;
/**
* Created by argo on 2017-07-24.
*/
public class SubActivity extends Activity implements SurfaceHolder.Callback{
Button btn_exit;
private CameraDevice camera;
private SurfaceView mCameraView;
private SurfaceHolder mCameraHolder;
private android.hardware.Camera mCamera;
private Button mStart;
private boolean recording = false;
private MediaRecorder mediaRecorder;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_sub);
btn_exit = (Button) findViewById(R.id.btn_exit);
btn_exit.setOnClickListener(new View.OnClickListener() { // 액티비티 종료
@Override
public void onClick(View v) {
finish();
}
});
init();
}
private void init(){
mCamera = android.hardware.Camera.open();
mCamera.setDisplayOrientation(90);
// surfaceview setting
mCameraHolder = mCameraView.getHolder();
mCameraHolder.addCallback(this);
mCameraHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
}
@Override
public void surfaceCreated(SurfaceHolder holder) {
try {
if (mCamera == null) {
mCamera.setPreviewDisplay(holder);
mCamera.startPreview();
}
} catch (IOException e) {
}
}
@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
if(mCameraHolder.getSurface() == null){
return;
}
try{
mCamera.stopPreview();
}catch (Exception e){
}
android.hardware.Camera.Parameters parameters = mCamera.getParameters();
List<String> focusModes = parameters.getSupportedFocusModes();
if (focusModes.contains(android.hardware.Camera.Parameters.FOCUS_MODE_AUTO)) {
parameters.setFocusMode(android.hardware.Camera.Parameters.FOCUS_MODE_AUTO);
}
mCamera.setParameters(parameters);
// View 를 재생성한다.
try {
mCamera.setPreviewDisplay(mCameraHolder);
mCamera.startPreview();
} catch (Exception e) {
}
}
@Override
public void surfaceDestroyed(SurfaceHolder holder) {
if (mCamera != null) {
mCamera.stopPreview();
mCamera.release();
mCamera = null;
}
}
}