스마트폰에선 통화를 하기 위한 마이크가 내장되있기 때문에 녹음하기 소스로 손쉽게 이용가능합니다.




기본적인 녹음 기능 호출


 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 지원 함수 에서 일시 정지 기능은 자체 지원하지 않아 따로 구현이 필요합니다.











+ Recent posts