当通过音频采样的数据数量超过 AudioRecord 构造函数中设置的“bufferSizeInBytes”时会发生什么?

2024-05-05

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

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

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

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

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

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

它是录制期间缓冲的音频数据量。 它决定了您需要拉动的频率AudioRecord对象通过read(),而不是期间可以记录的总金额Audiorecord对象的生命周期。

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

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

当通过音频采样的数据数量超过 AudioRecord 构造函数中设置的“bufferSizeInBytes”时会发生什么? 的相关文章

随机推荐