안드로이드 개발 질문/답변
(글 수 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이라고 하면서 안되네요



