Android使用MediaRecorder和MediaPlayer实现仿微信音频的录制,播放,停止和删除

mac2025-11-19  5

用到的类

private MediaRecorder mediaRecorder; private MediaPlayer mediaPlayer; //生成的本地文件名和路径 private String path = Environment.getExternalStorageDirectory()+"/1024/fuck.amr";

音频录制

/** * 开启录音 */ private void startRecordVoice() { if (mediaRecorder == null) { File file = new File(Environment.getExternalStorageDirectory(),"1024"); if (!file.exists()){ file.mkdirs(); } File soundsFile = new File(file,"fuck.amr"); if (!soundsFile.exists()){ try { soundsFile.createNewFile(); } catch (IOException e) { e.printStackTrace(); } } mediaRecorder = new MediaRecorder(); mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);//音频输入源 mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.AMR_WB);//设置输出格式 mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_WB); //设置编码格式 mediaRecorder.setOutputFile(soundsFile.getAbsolutePath()); try { mediaRecorder.prepare(); mediaRecorder.start(); } catch (IOException e) { e.printStackTrace(); } } }

停止录音

private void stopRecord() { if (mediaRecorder != null) { mediaRecorder.stop(); mediaRecorder.release(); mediaRecorder = null; } }

播放和停止播放录音

private void startPlaying() { mediaPlayer = new MediaPlayer(); try { mediaPlayer.setDataSource(path); mediaPlayer.prepare(); mediaPlayer.start(); } catch (IOException e) { e.printStackTrace(); } } private void stopPlaying(){ mediaPlayer.release(); mediaPlayer=null; }

删除录音

private void deleteRecord() { File file = new File(path); if (file.exists()) { file.delete(); } }
最新回复(0)