八维教育-李军宜
使用MediaRecorder播录制音频
public class MediaRecorderTest extends Activity implements OnClickListener{ private Button btn; private MediaRecorder recorder; private boolean isRecording=false; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.media_recorder_test); btn=(Button)findViewById(R.id.btn); recorder=new MediaRecorder(); btn.setOnClickListener(this); } @Override public void onClick(View v) { if(isRecording){ Log.i(\"OUT\停止录音1\"); recorder.stop(); isRecording=false;
btn.setText(\"开始录音\"); Log.i(\"OUT\停止录音2\"); }else{ Log.i(\"OUT\开始录音1\"); /**
* mediaRecorder.setAudioSource设置声音来源。
* MediaRecorder.AudioSource这个内部类详细的介绍了声音来源。 * 该类中有许多音频来源,不过最主要使用的还是手机上的麦克风,MediaRecorder.AudioSource.MIC */ recorder.setAudioSource(MediaRecorder.AudioSource.MIC); /** * mediaRecorder.setOutputFormat代表输出文件的格式。 * 该语句必须在setAudioSource之后,在prepare之前。 * OutputFormat内部类,定义了音频输出的格式,主要包含MPEG_4、THREE_GPP、RAW_AMR……等。 */ recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP); /**
八维教育-李军宜
* 设置录音之后,保存音频文件的位置 */
recorder.setOutputFile(\"/sdcard/AUD_\"+System.currentTimeMillis()+\".3gp\"); /**
* mediaRecorder.setAdioEncoder()方法可以设置音频的编码
* AudioEncoder内部类详细定义了两种编码:AudioEncoder.DEFAULT、AudioEncoder.AMR_NB */ recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); try { /** }
}
}
* 调用start开始录音之前,一定要调用prepare方法。 **/ recorder.prepare();
} catch (IllegalStateException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }
recorder.start(); isRecording=true;
btn.setText(\"停止录音\"); Log.i(\"OUT\开始录音2\");
@Override
protected void onDestroy() { // TODO Auto-generated method stub super.onDestroy(); recorder.release(); }