第一步:声明 private Button start;//录制 private Button stop;//停止 private MediaRecorder recorder;//录制音频 第二步:录制声音
private void startRecording(){ //初始化:设置音频录入源(MIC:指定使用麦克风,CAMCORDER:指定使用录像机) recorder.setAudioSource(MediaRecorder.AudioSource.MIC); //设置音频输出格式(THREE_GPP:3gp,MPEG_4:mp4) recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP); //设置声音编码格式 recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); //设置音频文件存储位置 //存储到手机的SD卡里 try { File file=new File(Environment.getExternalStorageDirectory().getCanonicalPath(),"myRecord.3gp"); recorder.setOutputFile(file.getAbsolutePath()); //准备录制 recorder.prepare(); } catch (IOException e) { e.printStackTrace(); } //开始录制 recorder.start(); //错误监听 recorder.setOnErrorListener(new MediaRecorder.OnErrorListener() { @Override public void onError(MediaRecorder mr, int what, int extra) { Toast.makeText(AudioRecordActivity.this, "录制出现未知错误", Toast.LENGTH_SHORT).show(); } }); } 第三步:停止录制
private void stopRecording() { //停止 recorder.stop(); //重置 recorder.reset(); //释放资源 recorder.release(); } 剩余代码:
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_audio_record); initViews(); } private void initViews() { start=(Button)findViewById(R.id.start); stop=(Button)findViewById(R.id.stop); start.setOnClickListener(this); stop.setOnClickListener(this); //创建对象 recorder=new MediaRecorder(); }
@Override public void onClick(View v) { switch (v.getId()) { case R.id.start: start.setEnabled(false); stop.setEnabled(true); startRecording(); break; case R.id.stop: start.setEnabled(true); stop.setEnabled(false); stopRecording(); break; } }