Android 音频录制(一)-MediaRecord
Android 系统为我们提供了三种录制音频的方式
- MediaRecord( Java API)
- AudioRecord( Java API)
- OpenSL ES( Native API)
这次我们先从最简单的 MediaRecord 说起
系统提供的这个是最简单的录制 API。不用关心编码、不用操作字节码,所有的数据处理内部都已经实现,所以使用也是最简便的。
当然有因必有果,你的报应就是我。使用简单,带来的后果就是可扩展性太差。
(谷哥:几个意思,嫌我封装的太完美了?)
不扯了,直接露码,代码中的注释都已经标明
/**
* Author silence.
* Time:2019-09-25.
* Desc:Aac 音频格式录制
*/
public class AacRecord {
private String recordFilePath = applicationContext.getExternalFilesDir("pcm") + "/record.aac";
private MediaRecorder mediaRecorder = new MediaRecorder();
public AacRecord(){
//配置采集方式,这里用的是麦克风的采集方式
mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
//配置输出方式,这里用的是MP4,
mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.AAC_ADTS);
//配置采样频率,频率越高月接近原始声音,Android所有设备都支持的采样频率为44100
mediaRecorder.setAudioSamplingRate(44100);
//配置文件的编码格式,AAC是比较通用的编码格式
mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);
//配置码率,这里一般通用的是96000
mediaRecorder.setAudioEncodingBitRate(96000);
//配置录音文件的位置
mediaRecorder.setOutputFile(recordFilePath);
}
public void start(){
try {
mediaRecorder.prepare();
mediaRecorder.start();
} catch (IOException e) {
e.printStackTrace();
}
}
public void stop(){
mediaRecorder.stop();
}
}
调用方式
AacRecord aacRecord = new AacRecord();
//开始录制
aacRecord.start();
//结束录制
aacRecord.stop();