<java.lang.Object의 하위 클래스, android.media.MediaRecorder>
Android Developers Reference : http://developer.android.com/reference/android/media/MediaRecorder.html
(Audio 기능만을 사용한다는 가정 하에 정리)
0. AndroidManifest.xml 수정
<application> 태그 위, 혹은 아래에 선언
<uses-permission android:name = "android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name = "android.permission.RECORD_AUDIO" />
1. MediaRecorder 생성 및 초기화
MediaRecorder mc = new MediaRecorder();
mc.reset();
2. MediaRecorder 세팅
mc.setAudioSource(MediaRecorder.AudioSource.MIC);
mc.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
mc.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);
mc.setOutputFile(FilePath);
(FilePath의 경우 String, 직접 지정)
3. Audio Record
3-1. 시작
mc.prepare();
mc.start();
3-2. 끝
mc.stop();
mc.release();
mc = null;
4. 나타날 수 있는 예외 및 오류들
4-1. java.lang.IllegalStateException 발생
MediaRecorder의 경우, 메소드의 실행 "순서"가 특히 중요
setAudioSource()/setVideoSource()
-> setOutputFormat()
-> setAudioEncoder()/setVideoEncoder()
-> setOutputFile()
... (초기화/데이터 세팅 관련)
-> prepare()
-> start()
-> stop()
-> release()
4-2. java.io.FileNotFoundException: open failed: EACCES (Permission denied) 발생
AndroidManifest.xml 中 <uses-permission> 태그의 상태, 위치 확인하기 (<application> </application> 태그 바깥에서 작동)
권한 명 android.permission.WRITE_EXTERNAL_STORAGE 대문자 작성 확인하기