使用Java从Raspi中获得良好的声音时,我遇到了很大的问题。
我想向我用Java编写的媒体服务器编写一个小的AirPlay客户端。我从使用javazoom(http://www.javazoom.net/javalayer/docs/docs1.0/javazoom/jl/player/package-summary.html)中的Player类开始。这给了我一个不太震撼的声音,但以某种方式失真了,并且比我流向Raspi的mp3文件的正常播放速度慢。
我的第一个想法是,可能对mp3的解码对于Raspi来说有点过多,尤其是因为超频有所帮助。
因此,现在我将mp3转换为服务器上的wav文件,然后将其流式传输到Raspi,并使用javax.sound.sampled。*进行播放。但是,没有任何改善:|
有没有人在Raspi上播放Java的soundFiles的经验?任何建议都会有所帮助!
谢谢,Stefan
最佳答案
我建议您尝试改用JavaFX。这比支持标准JDK上的媒体要好得多。此外,您已经在使用Java 7,因此迁移将很容易。方法如下:
Media media = new Media(Utils.findURI(baseDirName, soundFileName).toString());
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
Platform.runLater(new Runnable() {
@Override
public void run() {
MediaPlayer mediaPlayer = new MediaPlayer(media);
mediaPlayer.setCycleCount(1);
mediaPlayer.play();
}
});
}
});
OpenJDK中声音的实现存在许多错误。其中之一是,它滥用了音响系统并垄断了音响系统。因此,在Linux上,如果您如上所述进行操作,则更有机会使事情正常进行。