我正在开发一个java项目,帮助人们了解地图中国家/地区的位置。
当鼠标经过一个对象并在Windows中完美运行时,程序播放.wav声音文件但是今天我在Ubuntu中试图这样做,程序抛出下一个异常:
javax.sound.sampled.LineUnavailableException:行格式为PCM_SIGNED 44100.0 Hz,16位,立体声,4字节/帧,不支持little-endian。
这是播放声音的方法。
public void playSound(String audioName){
String path="src/audio/"+audioName+".wav";
try{
Clip sound=AudioSystem.getClip();
sound.open(AudioSystem.getAudioInputStream(new File(path)));
sound.start();
} catch(Exception e){
JOptionPane.showMessageDialog(null,e);
}
}
有谁能告诉我如何解决这个问题?
我一直在寻找很多,但我没有找到一个明确的答案来帮助我。
我认为有一些重要的事情我没有说明......
当事件mouseEntered被触发时抛出我之前提到的异常,但这有点奇怪,因为程序乍一看没有任何问题。在我将鼠标移到某些对象上之后,在开始时正确再现的声音和异常被抛出。
答案 0 :(得分:-1)
为什么不尝试获取文件并获取其绝对路径,然后将返回值存储为路径变量。然后,使用该路径获取音频输入流。但是,如果你处理了应用程序中文件格式的转换,那么抛出的异常可能根本不属于这个显示的片段。我建议(如果你做了额外的处理)在使用可用的线路之前检查支持的线路。这样就可以避免这样的错误。