最近项目APP遇到需要添加录音功能,由于我是Java,半路出道做Android,所以第一想到的就是百度...
然而现实是残酷的,不断整理,看文档,总结后写了个工具类,代码如下:
```
/** * 描述:录音
* 作者: kimball
* E-mail: kimballlu@foxmail.com
* 日期: 2016-10-13 上午9:09:31
*/
```
public class RecorderUtil {
// 录音
private MediaRecorder recorder;
private Boolean bool = false;
private String path;
//初始化
private void init() {
recorder.setAudioSource(MediaRecorder.AudioSource.MIC); // 音频输入源
recorder.setOutputFormat(MediaRecorder.OutputFormat.AMR_WB); //设置输出格式
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_WB); //设置编码格式
path = FileUtil.getStoragePath()+"/db_demo/AudioFrequency/" + System.currentTimeMillis()+".amr";
recorder.setOutputFile(path); //设置音频保存路径
}
/**
* 开始录制音频
*/
public void startRecord() {
if( recorder == null ){
recorder = new MediaRecorder();
this.init();
}
if( bool == false ) {
try {
recorder.prepare();
recorder.start(); // 开始录制
Toast.makeText(TntApplication.context, "开始录音", Toast.LENGTH_LONG).show();
bool = true;
} catch (IOException e) {
Toast.makeText(TntApplication.context, "录制音频出现异常", Toast.LENGTH_LONG).show();
}
} else if(bool) {
Toast.makeText(TntApplication.context, "当前正在录制音频", Toast.LENGTH_LONG).show();
}
}
/**
* 停止录制,资源释放
*/
public void stopRecord(){
if(recorder != null){
recorder.stop();
recorder.release();
recorder = null;
Toast.makeText(TntApplication.context, "已经结束,文件保存在" + path, Toast.LENGTH_LONG).show();
bool = false;
}
}
}
使用:
RecorderUtil recorder = new RecorderUtil();
//开始录音
recorder.startRecord();
//停止录音
recorder.stopRecord();