프로그래밍/android
안드로이드 음성 녹음 사용하기
ylblog
2017. 4. 11. 09:21
스마트폰에선 통화를 하기 위한 마이크가 내장되있기 때문에 녹음하기 소스로 손쉽게 이용가능합니다.
기본적인 녹음 기능 호출
Intent recordIntent = new Intent( MediaStore.Audio.Media.RECORD_SOUND_ACTION ); // NOTE: Sound recorder does not support EXTRA_OUTPUT
startActivity(recordIntent);
|
startActivityForResult 를 이용할 순 있지만 음성녹음은 단말기 특성마다 결과 값이 다르기 때문에 직접 구현해서 쓰는 것이 낫습니다.
녹음 소스 사용하기
MediaRecorder recorder=new MediaRecorder();
public void startRec(){ try {
File file=Environment.getExternalStorageDirectory(); //갤럭시 S4기준으로 /storage/emulated/0/의 경로를 갖고 시작한다. String path=file.getAbsolutePath()+"/"+"recoder.mp3";
recorder.setAudioSource(MediaRecorder.AudioSource.MIC); //첫번째로 어떤 것으로 녹음할것인가를 설정한다. 마이크로 녹음을 할것이기에 MIC로 설정한다. recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP); //이것은 파일타입을 설정한다. 녹음파일의경우 3gp로해야 용량도 작고 효율적인 녹음기를 개발할 수있다. recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); //이것은 코덱을 설정하는 것이라고 생각하면된다. recorder.setOutputFile(path); //저장될 파일을 저장한뒤 recorder.prepare(); recorder.start(); //시작하면된다. Toast.makeText(this, "start Record", Toast.LENGTH_LONG).show(); } catch (IllegalStateException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } }
public void stopRec(){ recorder.stop(); //멈추는 것이다. recorder.release(); Toast.makeText(this,"stop Record",Toast.LENGTH_LONG).show(); } |
MediaRecorder 지원 함수 에서 일시 정지 기능은 자체 지원하지 않아 따로 구현이 필요합니다.