时通过音频采样数据的数量超过其在AudioRecord构造函数设置“bufferSizeInByte

2019-09-21 07:51发布

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

这就是公共构造AudioRecord ,你可以找到一个名为最后一个参数bufferSizeInBytes ,它是指“音频数据在记录过程中写入缓存的总大小(以字节为单位)。” android系统中的文档。

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

如果它是通过音频采样数据的数量超过了“bufferSizeInBytes”,会发生什么事情,停止采样或别的吗?

我做了一些测试,发现什么都没有发生(它保存记录),即使样本数据的数量已经超过了。 为什么?

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

Answer 1:

这是其在拍摄过程中缓冲的audiodata量。 它决定了你有多久拉AudioRecord通过对象read()而不是可在过程中得到记录总量Audiorecord对象的生命周期。

如果你不读出的AudioRecord对象,记录的数据将丢失。 它保留记录,但超过缓冲级audioframes被丢弃。

如果从对象读取的音频数据,缓冲器填充水平降低。



文章来源: what will happen when the number of data which is sampled through audio exceed the “bufferSizeInBytes” which is set in AudioRecord constructor?