簡體   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