Backup

[Android] MediaRecorder

올ㄹ1브 2015. 8. 6. 02:11
반응형

<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 대문자 작성 확인하기

 

반응형