繁体   English   中英

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

[英]Audio data byte array volume adjustment 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);
}

split是原始数据字节数组

我的音频配置文件:22.05K采样率,每个采样16位

  1. 确保将equal.vol声明为浮点类型,例如floatdouble
  2. 确保您的样本数据实际上是小端的。
  3. 确保0 <= equal.vol <= 1; 也就是说,请确保您只是衰减而不是放大。 如果要放大,则需要钳制乘法结果以适合样本范围,即-32768至+32767。 但是,以这种方式放大时,声音可能会出现削波。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM