AudioRecord 音频采集
一、参数相关


1:什么是采样率?
采样率(也称为采样速度或者采样频率)定义了每秒从连续信号中提取并组成离散信号的采样个数,单位用赫兹(Hz)来表示。采样频率的倒数是采样周期(也称为采样时间),它表示采样之间的时间间隔。这里要注意不要将采样率与位速相混淆。
2:android音频采样率:
Android录音API AudioRecord的参数有一个是采样率,但Android对音频采样率做了限制,默认值是22050Hz,并且不能小于4000Hz,不能大于48000Hz,即采样率必须位于[4000,48000]hz之间。
3:什么音频通道?
android支持双声道立体声和单声道 CHANNEL_IN_MONO是单声道,在所有设备上支持,CHANNEL_IN_STEREO是双声道立体声。
4:PCM是什么?
自然界中的声音非常复杂,波形极其复杂,通常我们采用的是脉冲代码调制编码。即PCM编码。PCM通过抽样、量化、编码三个步骤将连续变化的模拟信号转换为数字编码。 android支持的采样大小16bit 或者8bit。当然采样大小越大,那么信息量越多,音质也越高,现在主流的采样大小都是16bit,在低质量的语音传输的时候8bit足够了。
5:BufferSizeBytes
采集下来的音频会存入缓冲区,这个时候就需要知道缓冲区的大小,新的音频数据不可以比这个尺寸更小。
二、音频采集实现:
先将音频数据通过物理设备读到buffer中,然后在将buffer中的内容写到file中。

AudioTrack PCM音频播放
一、参数相关
1:构造方法

2:参数问题
和AudioRecord 相同 仍然需要采样率(sampleRateInHz),通道(channelConfig),音频来源(audioFormat),最小缓冲区大小(bufferSizeInBytes)这个几个参数,同时增加了流类型和MODE(流媒体/静态缓冲区,两种模式)这两个参数.

二、实现
现将pcm文件读到buffer中,然后在将buffer中的数据写到audioTrack中。

网友评论