在RPi上使用Java加载音频剪辑时出现LineUnavailableException

时间:2017-09-06 23:08:22

标签: java audio raspberry-pi

我的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(),并且没有任何更改。

我该如何解决这个问题?

0 个答案:

没有答案