Android 音频录制-MediaRecord

Posted xyTianZhao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

以上是关于Android 音频录制-MediaRecord的主要内容,如果未能解决你的问题,请参考以下文章

Android 音频录制-AudioRecord

MediaRecord一些使用记录

MediaRecord录像声音小问题

MediaRecord录像声音小问题

Android 音频采集——MediaRecord(编码后录影文件) AudioRecord(PCM原始数据)

mediarecord两种录音方式