使用AudioRecord进行音频采集

AudioRecord 可以获取到一帧帧PCM数据,然后转化成wav格式。

pcm是一种数据编码格式,CD唱盘上刻录的就直接用pcm格式编码的数据文件;

wav是一种声音文件格式,wav里面包含的声音数据可以是采用pcm格式编码的声音数据,也可以是采用其它格式编码的声音数据,但目前一般采用pcm编码的声音数据

AudioRecord的基本参数

audioResource:音频采集的来源
audioSampleRate:音频采样率
channelConfig:声道
audioFormat:音频采样精度,指定采样的数据的格式和每次采样的大小。
bufferSizeInBytes:AudioRecord 采集到的音频数据所存放的缓冲区大小。
获取最小的缓冲区大小,用于存放AudioRecord采集到的音频数据。
定义参数
  //音频输入-麦克风
    private final static int AUDIO_INPUT = MediaRecorder.AudioSource.MIC;
    //采用频率
    //44100是目前的标准,
    //采样频率一般共分为22.05KHz、44.1KHz、48KHz三个等级
    private final static int AUDIO_SAMPLE_RATE = 16000;
    //声道 单声道
    private final static int AUDIO_CHANNEL = AudioFormat.CHANNEL_IN_MONO;
    //编码
    private final static int AUDIO_ENCODING = AudioFormat.ENCODING_PCM_16BIT;

获得缓冲区字节大小

 bufferSizeInBytes = AudioRecord.getMinBufferSize(AUDIO_SAMPLE_RATE,
                AUDIO_CHANNEL, AUDIO_ENCODING);
 

创建录音对象

private AudioRecord audioRecord;
        audioRecord = new AudioRecord(AUDIO_INPUT, AUDIO_SAMPLE_RATE, AUDIO_CHANNEL, AUDIO_ENCODING, bufferSizeInBytes);

6.录音

//开始录音
audioRecord.startRecording();
        new Thread(new Runnable() {
   
            @Override
            public void run() {
   
                            writeDataTOFile(listener);
            }
        }
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值