안드로이드 개발 질문/답변
(글 수 45,052)
public class Preview extends SurfaceView implements Callback { public SurfaceHolder mHolder; public Camera mCamera; public MediaRecorder mRecorder; Calendar mcalendar; int year, month, day; int hour, minitues, second; String name; File mfile; String dirPath, mPath; boolean nowRecording = false; public Preview(Context context) { super(context); // TODO Auto-generated constructor stub mHolder = getHolder(); mHolder.addCallback(this); mHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS); } @Override public void surfaceChanged(SurfaceHolder holder, int format, int w, int h) { mCamera.startPreview(); } @Override public void surfaceCreated(SurfaceHolder holder) { if(mCamera == null){ mCamera = Camera.open(); } try { mCamera.setPreviewDisplay(holder); } catch (IOException exception) { mCamera.release(); mCamera = null; } } @Override public void surfaceDestroyed(SurfaceHolder holder) { // TODO Auto-generated method stub mCamera.stopPreview(); mCamera.release(); mCamera = null; } public void Start() { PrepareMedia(); mRecorder.start(); nowRecording = true; } public void Stop() { if(mRecorder != null){ mRecorder.stop(); } mRecorder.reset(); mRecorder.release(); mRecorder = null; nowRecording = false; } public void PrepareMedia() { if (mRecorder == null) mRecorder = new MediaRecorder(); mCamera.unlock(); mRecorder.setCamera(mCamera); mRecorder.setPreviewDisplay(mHolder.getSurface()); mRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA); mRecorder.setAudioSource(MediaRecorder.AudioSource.MIC); mRecorder.setProfile(CamcorderProfile.get(CamcorderProfile.QUALITY_HIGH)); mRecorder.setOutputFile(Path() + getDate()); try { mRecorder.prepare(); } catch (IllegalStateException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
왜 mRecorder.stop()하면 안될까요??
이유를 모르겠어요?? stop 안하고 release만 해도 녹화한 영상을 볼수 있나요??
stop안하고 해서인지는 모르겠으나 녹화한 영상이 재생이 안되네요;;;
rog_cat에는
mediarecorder.native_stop이라고 하면서 안되네요