【发布时间】:2018-07-16 04:04:41
【问题描述】:
所以我开始制作视频游戏,我想创建一种自定义声音格式。
Path file = Paths.get("C:", "Users", "Mariobro85", "Desktop", "test.wav");
public void playFile() throws InterruptedException{
try{
File f = new File(file.toString());
URL url = f.toURI().toURL();
AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(url);
Clip clip = AudioSystem.getClip();
clip.open(audioInputStream);
clip.start();
Thread.sleep(15000);
}
catch(UnsupportedAudioFileException uafE){
System.out.println("ERROR: Audio data of the file " + file + " is not in wave format.");
}
catch(IOException ioE){
System.out.println("ERROR: Audio data of the file " + file + " is corrupted.");
}
catch(LineUnavailableException luE){
System.out.println(luE);
}
}
但这只能播放标准的 .wav 文件。 我也使用自定义格式的 wav,但问题是我的文件中的音频数据从 0x60 而不是 0x0 开始,并且还存储了循环、音量等信息。因此,它总是抛出 UnsupportedAudioFileException。
有什么方法可以告诉 AudioStream 跳转到一个特定的地址,还是标准的 java 库无法做到这一点?
【问题讨论】: