Android录音机(AudioRecorder)实现-pcm转成wav

一、概述

安卓系统支持MediaRecorderAudioRecord录音,2者区别如下:

MediaRecorder

MediaRecorder 是基于 AudioRecorder 的 API(最终还是会创建AudioRecord用来与AudioFlinger进行交互) ,它可以直接将采集到的音频数据转化为执行的编码格式,并保存。这种方案相较于调用系统内置的用用程序,便于开发者在UI界面上布局,而且系统封装的很好,便于使用,唯一的缺点是使用它录下来的音频是经过编码的,没有办法的得到原始的音频。同时MediaRecorder即可用于音频的捕获也可以用于视频的捕获相当的强大。实际开发中没有特殊需求的话,用的是比较多的!

AudioRecord

AudioRecord 是一个比较偏底层的API,它可以获取到一帧帧PCM数据,之后可以对这些数据进行处理。AudioRecord这种方式采集最为灵活,使开发者最大限度的处理采集的音频,同时它捕获到的音频是原始音频PCM格式的!像做变声处理的需要就必须要用它收集音频。

由于本人工作原因,用到的录音api都是AudioRecord,故对AudioRecorder api进行了接单封装,希望对有些孩童有帮助。

二、封装主要接口如下:

1,启动录音机

public int start(int sampleRate, int channel, int buf_time) {
		bufferTime = buf_time;
		// int channel=AudioFormat.CHANNEL_IN_MONO;
		int audioEncoding = AudioFormat.ENCODING_PCM_16BIT;
		int bytes = 2;
		int size;
		q = new ArrayBlockingQueue<byte[]>(1024*300);
		audioBufSize = AudioRecord.getMinBufferSize(sampleRate, channel, audioEncoding);
		size = sampleRate * channel * bytes * buf_time / 1000;
		
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值