当前位置:   article > 正文

AudioRecord_record_audio

record_audio

数字音频

数字音频通常分为三步:采样、量化、编码

采样:就是将获取的信号给数字化,其中有个概念就是采样频率,而人耳能听到的频率范围只有20Hz~20kHz,所以一般设置的都是44.1kHz

量化:就是如何去表达采样的数据,常用使用二进制来表示声音信号的幅度

编码:如何去保存采样和量化过后的数据,这就出现了很多格式,其中最基础的格式就是PCM(脉冲编码调制),就是裸数据格式完全没有压缩,PCM格式中有几个属性:量化格式采样率声道数

量化格式:即使用多少比特的二进制去进行量化,例如我们使用16比特的二进制信号来进行量化,16比特的二进制范围是-32768到32767,范围大小为65536,所以声音分层就比较多,但是对应的是数据大小会增大

采样率:即前面采样中所说的采样频率

声道数:即单声道还是双声道以及更多声道

比特率:

每秒传送的比特(bit)数。单位为 bps(Bit Per Second),比特率越高,传送数据速度越快。

采样率x采样大小x声道数
每秒钟采样的大小=16bit(位宽) * 2(双通道) * 44100(每次采样的次数hz) = 1411200b=1411.2kbps

Android中的音频采集——AudioRecord的使用

在android中我们使用AudioRecord来进行音频采集,采样量化编码全套服务最后输出PCM数据

权限

首先要申请android.permission.RECORD_AUDIO权限

AudioRecord的初始化

  1. audioSize = AudioRecord.getMinBufferSize(44100,
  2. AudioFormat.CHANNEL_IN_MONO,
  3. AudioFormat.ENCODING_PCM_16BIT);
  4. audioRecord = new AudioRecord(
  5. MediaRecorder.AudioSource.MIC,
  6. 44100,
  7. AudioFormat.CHANNEL_IN_MONO,
  8. AudioFormat.ENCODING_PCM_16BIT,
  9. audioSize);

我们可以看见初始化AudioRecord的几个属性

streamType 音频来源,例如麦克风MediaRecorder.AudioSource.MIC

sampleRateInHz 采样频率

channelConfig 声道数

AudioFormat.CHANNEL_IN_MONO 单声道,一个声道进行采样
AudioFormat.CHANNEL_IN_STEREO 双声道,两个声道进行采样

audioFormat:量化格式

  • 音频采样精度

指定采样的数据的格式和每次采样的大小。

数据返回格式为 PCM 格式
每次采样的位宽为 16bit

一般都采用这个 AudioFormat.ENCODING_PCM_16BIT(官方文档表示,该采样精度保证所有设备都支持)

bufferSizeInBytes:通过 getMinBufferSize()方法可以获得,根据我们采样录制的过程中的参数来确定,每次从硬件读取数据所需要的缓冲区的大小。

getMinBufferSize()

返回成功创建AudioRecord对象所需的最小缓冲区大小(以字节为单位)。没有实际意义。

我们可以发现初始化所需要的属性基本就是PCM的属性

AudioRecord的使用

初始化完之后,AudioRecord使用就很简单了

  1. while (isRecording) {
  2. int readResult = audioRecord.read(bytes, 0, audioSize);
  3. for (int i = 0; i < readResult; i++) {
  4. outputStream.write(bytes[i]);
  5. }
  6. }

我们用关键字来控制无限循环,当停止录制的时候就关键字就控制while循环停止,然后在while循环中我们使用read方法,read方法会把数据传入byte数组中并返回数组大小,我们用for循环将byte数组中的数据用文件输出流输出到文件中,这就完成了PCM数据的采集,最后记住关闭audioRecord就可以了

以上就是在android中音频的采集

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/283795
推荐阅读
  

闽ICP备14008679号