音频数据字节数组音量调整java



我正在为我的wifi扬声器做音量控制。我需要处理原始PCM数据字节数组来调整音量。但是我的代码有很多噪音。以下是我的代码:

for (int i = 0; i < split.length; i+=2) {
short audioSample = (short) (((split[i+1] & 0xff) << 8) | (split[i] & 0xff));
audioSample = (short) (audioSample * 1 * equal.vol);
split[i] = (byte) audioSample;
split[i+1] = (byte) (audioSample >> 8);
}

拆分为原始数据字节数组

My audio profile:22.05K采样率,每个采样16位

  1. 确保equal.vol被声明为浮点类型,如floatdouble
  2. 确保您的样本数据实际上是小端序。
  3. 确保0 <= equal.vol <= 1;也就是说,确保你只是在衰减而不是放大。如果你想放大,你需要箝位乘法的结果以适应样本范围,即-32768到+32767。但是,当以这种方式放大时,您的声音可能会出现剪切。

最新更新