权限申请:
<uses-permission android:name="android.permission.RECORD_AUDIO"/><!--录音-->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/><!--写数据-->录音代码 [录音文件名不能包含英文冒号 会文件损坏]
private void startRecording() {
try {
recorder = new MediaRecorder();// new出MediaRecorder对象
recorder.setAudioSource(MediaRecorder.AudioSource.MIC);// 设置MediaRecorder的音频源为麦克风
recorder.setOutputFormat(MediaRecorder.OutputFormat.DEFAULT);// 设置MediaRecorder录制的音频格式
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT); // 设置MediaRecorder录制音频的编码
String recorderPath = Environment.getExternalStorageDirectory() + "/录音文件.mp3";//录音文件名不能包含英文冒号 会文件损坏
recorder.setOutputFile(recorderPath);// 设置文件保存路径
recorder.prepare();// 准备录制
recorder.start();// 开始录制
} catch (Exception e) {
e.printStackTrace();
}
}停止录音 private void stopRecording() {
if (recorder != null) {
recorder.stop();//停止捕获
recorder.release();//释放资源
recorder = null;
}
}获取音频文件时长 private int getDuration(String path) {
try {
MediaPlayer player = new MediaPlayer();
player.setDataSource(path);
player.prepare();//缓冲
int duration = player.getDuration() / 1000;
player.release();//释放资源
player = null;
return duration;
} catch (Exception e) {
return 0;
}
}播放音频 private void playRecoding(String path){
try {
MediaPlayer player = new MediaPlayer();
player.setDataSource(path);
player.prepare();//缓冲
player.start();//开始或恢复播放
player.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer arg0) {
//播放结束事件
}
});
} catch (IOException e) {
e.printStackTrace();
//文件损坏
}
}暂停播放player.pause();//暂停停止播放player.stop();//停止
player.release();//释放资源
player = null;获取当前播放时长
player.getCurrentPosition()获取总时长player.getDuration()
版权声明:本文为wenweidev原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。