Android 音頻錄製(一)-MediaRecord

Android 音頻錄製(一)-MediaRecord

Android 系統爲我們提供了三種錄製音頻的方式

  1. MediaRecord( Java API)
  2. AudioRecord( Java API)
  3. 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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章