在Linux上的IDE下没有声音(在Jar中可以)

时间:2013-11-30 08:05:02

标签: java linux eclipse audio openjdk

我在Linux平台上使用openjdk-1.6(这是一个要求) 我需要播放流音频。基于此示例http://www.java2s.com/Code/Java/Development-Class/PlayingStreamingSampledAudio.htm

我写了这样的话:

SourceDataLine.Info info = new DataLine.Info(....);
SourceDataLine line = (SourceDataLine) AudioSystem.getLine(info);
line.open(stream.getFormat());
line.start();

但问题在于

line.open(stream.getFormat());

系统支持使用的格式。

我有LineUnavailableException

但问题是我只在eclipse下有这个例外。当我创建可执行jar并运行它时 - 一切都很好 - 没有例外。

据我所知,谷歌搜索和一些实验 - 问题在于安全限制。可执行的jar在当前用户下运行并且可以访问声音设备,不知何时不会发生eclipse。我试图将所有系统用户添加到音频组,尝试以root身份运行eclipse ...没有任何帮助。

我不是Linux和eclipse的大师。有谁知道如何解决这个问题或者至少如何改变eclipse的安全限制?

任何想法都会受到高度赞赏!!

2 个答案:

答案 0 :(得分:0)

以下是我在代码中的确切示例。

int sampleRate = 40000;
int sampleBits = 16;
SourceDataLine _line;           
AudioFormat format = new AudioFormat(sampleRate,sampleBits,1,true, true);
SourceDataLine.Info info = new SourceDataLine.Info(SourceDataLine.class, format);
_line  = (SourceDataLine)AudioSystem.getLine(info);
_line.open(format);

答案 1 :(得分:0)

由于我的属性打印被认为是错误的代码,这里是一个带有JRE属性列表的链接(在eclipse下): https://docs.google.com/document/d/1ef4f8GvEprhWWrrA57B0p2w6h5qOio4Wjz0ycY9-_0Q/edit?usp=sharing

这里使用可执行jar:

https://docs.google.com/document/d/1lxbPIa4YUwURCdUZsCNL1Iehq--OT2eu35Q0QHKonEg/edit?usp=sharing

说实话 - 没有发现任何刑事分歧......