android audiorecord 缓存申请,Android音视频之AudioRecord

(1)构造一个AudioRecord对象,其中需要的最小录音缓存buffer大小可以通过getMinBufferSize方法得到。如果buffer容量过小,将导致对象构造的失败。

int recordBufSize = AudioRecord.getMinBufferSize(frequency, channelConfiguration, EncodingBitRate);

AudioRecord audioRecord = new AudioRecord(MediaRecorder.AudioSource.MIC, frequency, channelConfiguration, EncodingBitRate, recordBufSize);复制代码

下面说说getMinBufferSize的参数

AudioRecord.getMinBufferSize(

frequency, // 采样率

channelConfiguration, // 声道

EncodingBitRate); // 编码制式复制代码

下面对AudioRecord的构造函数进行说明:public AudioRecord (

int audioSource, // 音频源

int sampleRateInHz, // 采样率

int channelConfig, // 声道

int audioFormat, // 编码制式

int bufferSizeInBytes) // 采集数据缓冲区大小复制代码

下面对各个参数进行说明:

音频源:指的是从哪里采集音频

下面是Android所支持的音频源,在MediaRecorder.AudioSource里面。

/**默认声音**/

public static final int DEFAULT = 0;

/**麦克风声音*/

public static final int MIC = 1;

/**通话上行声音*/

public static final int VOICE_UPLINK = 2;

/**通话下行声音*/

public static final int VOICE_DOWNLINK = 3;

/**通话上下行声音*/

public static final int VOICE_CALL = 4;

/**根据摄像头转向选择麦克风*/

public static final int CAMCORDER = 5;

/**对麦克风声音进行声音识别,然后进行录制*/

public static final int VOICE_RECOGNITION = 6;

/**对麦克风中类似ip通话的交流声音进行识别,默认会开启回声消除和自动增益*/

public static final int VOICE_COMMUNICATION = 7;

/**录制系统内置声音*/

public static final int REMOTE_SUBMIX = 8;

复制代码

采样率:音频的采样频率,每秒钟能够采样的次数,采样率越高,音质越高。给出的实例是44100、22050、11025但不限于这几个参数。例如要采集低质量的音频就可以使用4000、8000等低采样率。

声道设置:android支持双声道立体声和单声道。MONO单声道,STEREO立体声

在AudioFormat里面

public static final int CHANNEL_IN_MONO = CHANNEL_IN_FRONT;

public static final int CHANNEL_IN_STEREO = (CHANNEL_IN_LEFT | CHANNEL_IN_RIGHT);

复制代码

编码制式和采样大小:采集来的数据当然使用PCM编码 android支持的采样大小16bit 或者8bit。当然采样大小越大,那么信息量越多,音质也越高,现在主流的采样大小都是16bit,在低质量的语音传输的时候8bit足够了。

在AudioFormat里面

public static final int ENCODING_PCM_16BIT = 2;

public static final int ENCODING_PCM_8BIT = 3;

复制代码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值