3
public AudioRecord (int audioSource, int sampleRateInHz, int channelConfig, int audioFormat, int bufferSizeInBytes)

这是 的 Public Constructor AudioRecord,你可以找到最后一个名为 的参数bufferSizeInBytes,它的意思是“在录制过程中写入音频数据的缓冲区的总大小(以字节为单位)”。在安卓文档中。

我认为这是一个用于存储从音频硬件采样的所有数据的缓冲区。我有个问题 :

如果通过音频采样的数据数量超过“bufferSizeInBytes”,会发生什么,停止采样还是其他?

我做了一些测试,发现即使样本数据的数量超过了,也没有发生任何事情(它一直在记录)。为什么?

So  can anyone tell me what's the meaning about  "bufferSizeInBytes"
4

1 回答 1

3

这是在录制过程中缓冲的音频数据量。它决定了您必须通过 拉取AudioRecord对象的频率,而不是在对象的生命周期read()内可以记录的总量。Audiorecord

如果不读出AudioRecord对象,记录的数据就会丢失。它继续录制,但超过缓冲区级别的音频帧被丢弃。

如果从对象中读取音频数据,缓冲区填充级别会降低。

于 2012-08-17T08:19:36.940 回答