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();
相關推薦
音頻基礎知識
Android 音頻錄制-MeidaRecord
Android 音頻錄制-AudioRecord
Android 音頻錄制-OpenSL ES