OpenSL放大信号

时间:2015-07-04 11:35:15

标签: audio-player opensl

将PCM数据(从Midi)传递到OpenSL-ES我正在寻找放大PCM信号的方法。在OpenSL-ES中,我看到了用于低音增强和均衡的接口,但没有用于放大的接口(增益高于最大音量)。

这有直接的方法吗?测试的另一种可能性是使用均衡器在所有频段中具有相同的增益(不确定结果),但也许有更直接的方式。

1 个答案:

答案 0 :(得分:0)

您可以放大PCM"信号"通过乘以PCM阵列的值。但是,您应该知道结果值不应超过或低于可能的值范围(对于16位PCM,为-32768到32767),否则输出会出现失真。

因此,如果您的PCM数据幅度接近最大和最小范围,则无法使用此方法放大音频。尝试使用Android中的LoudnessEnhancer音频效果(假设您要求Android相关问题)

当值乘以值时注意 - 如果PCM阵列由32位整数组成,并且PCM格式为16位,则应将32位值分成两部分,将它们相乘,然后再次连接它们。