什么是android音轨的最大和最小值,音频类型为float?

时间:2019-01-22 16:55:51

标签: android audio waveform audiotrack

我需要将左右声道的音频输出到耳机插孔,并将耳机插孔输出到示波器。 Float.MAX_VALUEFloat.MIN_VALUE无法获得正确的音频波形。通常,16位音频最大/最小值是一种短类型,其值是+/- 32767。因此,您可以使用Short.MAX_VALUEShort_MIN_VALUE分配值。但是目前,我的音频类型为float,即AudioFormat.ENCODING_PCM_FLOAT,并且使用Float.MAX_VALUEFloat.MIN_VALUE不能在示波器中获得正确的音频波形。实际的音频波形前后会有0.4毫秒的噪声,但是当我以3.5f或-3.5f浮动时,波形的形状看起来是正确的,但是没有达到最大值。那么float类型的最大和最小音频值是多少? enter image description here enter image description here enter image description here

实际的音频波形前后会有0.4毫秒的噪声。 enter image description here

正确的波形应该是这样的形状。如果设置为3.5f / -3.5f,则形状是正确的,但不是最大。 enter image description here

1 个答案:

答案 0 :(得分:0)

来自docs

  

...如果音频管道中的所有增益均小于或等于1(1.0f),且音频管道中的所有增益均小于或等于1(1.0f),则该实现不剪辑标称范围[-1.0f,1.0f]中的样本值。没有可以增加能量的后处理效果,例如混响。为了方便使用具有非单位增益的滤波器计算采样的应用,允许采样值超出标称范围+3 dB。但是,取决于各种增益和音频路径中的后续处理,最终可能会限制或限制此类值。因此,建议应用程序提供标称范围内的样本值。

3dB的功率增加对应于sqrt(2)的电压增加,大约为1.41。因此,根据文档,您的设备可能可以处理-1.41至1.41,但请注意有关裁剪的警告。