据我了解,您不需要任何自动调整,只需从用户界面进行手动调整即可。Android中没有内置功能,因此您必须手动修改数据。
假设您使用read(short [] audioData,int offsetInShorts,int
sizeInShorts)读取流。因此,您应该执行以下操作:
float gain = getGain(); // taken from the UI control, perhaps in range from 0.0 to 2.0int numRead = read(audioData, 0, SIZE);if (numRead > 0) { for (int i = 0; i < numRead; ++i) { audioData[i] = (short)Math.min((int)(audioData[i] * gain), (int)Short.MAX_VALUE); }}Math.min如果
gain大于1,则用于防止溢出。



