我的RPi为零W并使用Raspbian Jessie 4.9.35 / Oracle JDK8 1.8.0_65。
我在使用RPi在Java程序上加载音频剪辑时遇到问题。 我有两个名为“piano_0.wav”和“piano_1.wav”的音频文件,它们是不同的音频文件。
我用它来加载剪辑:
Clip loadClip(String path) {
Clip clip = null;
try {
clip = AudioSystem.getClip();
AudioInputStream stream = AudioSystem.getAudioInputStream(new File(path));
clip.open(stream);
} catch (Exception e) {
Logger.getLogger(MusicManager.class.getName()).log(Level.SEVERE, null, e);
}
return clip;
}
当我尝试加载piano_0.wav时,没有错误日志,可以播放返回的剪辑。但是当我尝试加载piano_1.wav程序抛出异常时:
javax.sound.sampled.LineUnavailableException: line with format PCM_SIGNED 44100.0 Hz, 16 bit, stereo, 4 bytes/frame, little-endian not supported.
at com.sun.media.sound.DirectAudioDevice$DirectDL.implOpen(DirectAudioDevice.java:513)
at com.sun.media.sound.DirectAudioDevice$DirectClip.implOpen(DirectAudioDevice.java:1304)
at com.sun.media.sound.AbstractDataLine.open(AbstractDataLine.java:121)
at com.sun.media.sound.DirectAudioDevice$DirectClip.open(DirectAudioDevice.java:1085)
at com.sun.media.sound.DirectAudioDevice$DirectClip.open(DirectAudioDevice.java:1175)
at beatstairscmd.BeatStairsCMD.testMusicClip(BeatStairsCMD.java:81)
at beatstairscmd.BeatStairsCMD.main(BeatStairsCMD.java:42)
但是当我在桌面上使用此代码时,加载更多剪辑没有问题。 我已经尝试过使用其他方式初始化剪辑的解决方案,而不是 AudioSystem.getClip(),并且没有任何更改。
我该如何解决这个问题?