import java.io.BufferedInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.UnsupportedAudioFileException;
public class Audio_to_bytes {
public static void main(String args[]) throws IOException
{
File WAV_FILE = new File("/home/cybersecurity/Desktop/scream.wav");
ByteArrayOutputStream out = new ByteArrayOutputStream();
AudioInputStream in = null;
try {
in = AudioSystem.getAudioInputStream(WAV_FILE);
} catch (UnsupportedAudioFileException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
int read,i;
byte[] buff = new byte[1024];
while ((read = in.read(buff)) > 0)
{
out.write(buff, 0, read);
}
out.flush();
byte[] audioBytes = out.toByteArray();
for(i=0;i<audioBytes.length;i++)
System.out.println(audioBytes[i]);
}
}
上述代碼是將.wav文件轉換爲字節數組。當我執行程序時,我得到許多值爲-128或-127,我想知道是否這些值是精確值,或者如果它超出了字節(-128到128), 的範圍,則該值將成爲邊界值。如果可以,則我可以將音頻文件轉換爲整數數組,因爲它具有更寬的範圍。將.wav轉換爲數組
你試過序列化的概念嗎? – 2013-04-11 07:46:31
爲什麼字節會成爲邊界值?是什麼給了你這個想法?這個數字會翻轉。 – 2013-04-11 07:49:55
我已經試過我的程序與許多音頻文件,我總是得到最後的100-150值爲-128或-127僅適用於所有文件 ,因爲我是新手,所以想問問 – 2013-04-11 07:51:42