비디오 재생관련 내용 공부하는데요 주석처리하면서 하나하나 보는데
빨간 글씨부분이 이해가 잘안되는데
어떤건가요?
public class VideoActivity extends Activity implements SurfaceHolder.Callback {
String SDmpath; // String 클래스에 대한 인스턴스 선언
Button myButton; // 버튼 변수 선언
MediaRecorder mediaRecorder; // MediaRecorder 클래스에 대한 변수 선언
SurfaceHolder surfaceHolder; // SurfaceHolder 클래스에 대한 변수 선언
boolean is_recording;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// 절대경로 가져오기
SDmpath = Environment.getExternalStorageDirectory()
.getAbsolutePath();
is_recording = false;
mediaRecorder = new MediaRecorder();
initMediaRecorder();
setContentView(R.layout.video);
// xml에 만든 객체에 접근하기 위해 findViewById() 메소드를 사용한다.
// 비디오뷰 변수 선언
SurfaceView myVideoView = (SurfaceView) findViewById(R.id.videoview);
surfaceHolder = myVideoView.getHolder();
surfaceHolder.addCallback(this);
myButton = (Button) findViewById(R.id.start);
myButton.setOnClickListener(myButtonOnClickListener);
}
// 녹화시작 버튼 클릭했을때 동작하는 이벤트 메소드 정의
private Button.OnClickListener myButtonOnClickListener = new Button.OnClickListener() {
public void onClick(View arg0) {
if (is_recording) {
// 촬영 중지
mediaRecorder.stop();
mediaRecorder.release();
finish();
} else {
mediaRecorder.start();
is_recording = true;
// 버튼 녹화중지로 바꾼다
myButton.setText("녹화중지");
}
}
};
// SurfaceView가 변할 때 호출
public void surfaceChanged(SurfaceHolder arg0, int arg1, int arg2, int arg3) {
}
// SurfaceView가 만들어질 때 호출
public void surfaceCreated(SurfaceHolder arg0) {
prepareMediaRecorder();
}
// SurfaceView가 종료될 때 호출
public void surfaceDestroyed(SurfaceHolder arg0) {
}
private void initMediaRecorder() {
// 시간받기
long time4 = System.currentTimeMillis();
// 년도-월-일 시간 으로 파일명을 만들기 위해 sdf 인스턴스를 생성한다.
SimpleDateFormat sdf4 = new SimpleDateFormat("yyyy-MM-dd HH");
// 받은 시간 Date형식으로 바꾼다.
Date dd4 = new Date(time4);
// Date 정보를 포멧 변환한다.
String fileName4 = sdf4.format(dd4);
// 기본 오디오 소스를 사용한다
mediaRecorder.setAudioSource(MediaRecorder.AudioSource.DEFAULT);
// 기본 비디오 소스를 사용한다
mediaRecorder.setVideoSource(MediaRecorder.VideoSource.DEFAULT);
// 캠코더 낮은 퀄리티를 사용한다
CamcorderProfile camcorderProfile_HQ = CamcorderProfile
.get(CamcorderProfile.QUALITY_LOW);
mediaRecorder.setProfile(camcorderProfile_HQ);
// myvid 폴더 안에 파일명.mp4 으로 파일을 생성한다.
mediaRecorder.setOutputFile(SDmpath + "/myvid/" +fileName4 + ".mp4");
// 최대 시간을 60초로 한정한다.
mediaRecorder.setMaxDuration(60000);
// 최대 파일 크기를 5MB로 한정한다.
mediaRecorder.setMaxFileSize(5000000);
}
private void prepareMediaRecorder() {
mediaRecorder.setPreviewDisplay(surfaceHolder.getSurface());
try {
mediaRecorder.prepare();
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}