1
下面的代碼工作完全在Windows上:Java的聲音可以完美運行在Windows,Linux中我們得到了LineUnavailableException
File soundFile = new File("bell.wav");
AudioInputStream ais = AudioSystem.getAudioInputStream(soundFile);
Clip clip = AudioSystem.getClip();
clip.open(ais);
clip.setFramePosition(0);
clip.start();
Thread.sleep(clip.getMicrosecondLength()/1000);
clip.stop();
clip.close();
但它是導致javax.sound.sampled.LineUnavailableException
例外,在Linux啓動時:
No protocol specified
xcb_connection_has_error() вернул true
Home directory not accessible: Отказано в доступе
No protocol specified
javax.sound.sampled.LineUnavailableException
at org.classpath.icedtea.pulseaudio.PulseAudioMixer.openImpl(PulseAudioMixer.java:714)
at org.classpath.icedtea.pulseaudio.PulseAudioMixer.openLocal(PulseAudioMixer.java:588)
at org.classpath.icedtea.pulseaudio.PulseAudioMixer.openLocal(PulseAudioMixer.java:584)
at org.classpath.icedtea.pulseaudio.PulseAudioMixer.open(PulseAudioMixer.java:579)
at org.classpath.icedtea.pulseaudio.PulseAudioDataLine.open(PulseAudioDataLine.java:94)
at org.classpath.icedtea.pulseaudio.PulseAudioDataLine.open(PulseAudioDataLine.java:283)
at org.classpath.icedtea.pulseaudio.PulseAudioClip.open(PulseAudioClip.java:402)
at org.classpath.icedtea.pulseaudio.PulseAudioClip.open(PulseAudioClip.java:453)
at beans.SoundDriver.PlayText(SoundDriver.java:41)
請,任何想法,有什麼不對?
在Windows中,在哪個目錄是運行此應用程序?另外,你的Linux環境中的'bell.wav'在哪裏?我所知道的是'bell.wav'是一個Windows系統聲音(如果內存正確地爲我服務)。 – 2015-02-05 15:32:42
nope。 wav是一種標準音頻格式,而不是Windows特定的 – Steffen 2015-02-05 15:38:58
您是否檢查過運行java程序的權限?嘗試使用管理員權限運行它。 – sphinks 2015-02-05 15:54:25