如何让我的Java应用程序在Linux中播放音频效果不错?

Vil*_*erg 5 java linux audio

我有一个Java应用程序,其UI很大程度上依赖于音频.在Windows和OS X上,一切正常; 但是,在Linux上,该应用程序需要对声音设备进行独占访问,LineUnavailableException抛出该声音并且不会听到声音.我正在使用Kubuntu 9.10.

这意味着程序运行时没有其他应用程序可以播放音频,甚至在程序启动时甚至无法保持音频设备.这自然是不可接受的.

这是我用来播放音频的代码:

AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(file);

Clip clip = AudioSystem.getClip();
clip.open(audioInputStream);

clip.start();

this.wait((clip.getMicrosecondLength() / 1000) + 100);

clip.stop();
Run Code Online (Sandbox Code Playgroud)

难道我做错了什么?使用Java在Linux中播放音频失败的原因是什么?

sfu*_*ger 5

我担心Linux中的音频本身就是一个失败的原因.但在这种情况下,它确实是一个已知的Java Bug.您应该尝试找出您正在使用的声音架构.我认为Ubuntu的默认值是PulseAudio/ALSA.不过我对Kubuntu不太确定.

一个已知的解决方法(我自己从未尝试过).

您运行的其他一些应用程序也可能只使用声卡,因此请确保使用不同的应用程序(即与其他应用程序完美匹配的应用程序)进行测试.