我正处于使用 Java 编写小型音乐/节奏游戏的早期阶段(通过 Slick 框架,该框架又使用 OpenAL,但这在这里可能无关紧要)。游戏需要读取(和播放)多个 WAV 格式的声音文件,但其中一些文件会抛出 [javax.sound.sampled.UnsupportedAudioFileException] 异常。
at javax.sound.sampled.AudioSystem.getAudioInputStream(AudioSystem.java:1102)
at org.newdawn.slick.openal.WaveData.create(WaveData.java:123)
at org.newdawn.slick.openal.SoundStore.getWAV(SoundStore.java:713)
at org.newdawn.slick.openal.SoundStore.getWAV(SoundStore.java:683)
at org.newdawn.slick.Sound.<init>(Sound.java:33)
这些文件可以在 Winamp 或 Foobar2000 中正常播放,因此这意味着 Java 无法识别文件格式的某些变体。在这一点上我有什么选择?
注意:有问题的文件是用户提供的,所以我不能只是事先转换它们(使用类似大胆的东西)。任何转换步骤都必须在运行时完成。