我在使用Java从Raspi中获得良好的声音时遇到了很大的问题。
我想在我用Java编写的媒体服务器上写一点AirPlay客户端。我开始使用javazoom(http://www.javazoom.net/javalayer/docs/docs1.0/javazoom/jl/player/package-summary.html)中的Player类。这给了我一个不是真的波涛汹涌,但不知何故扭曲和慢于正常播放我流式传输到Raspi的mp3文件。
我的第一个想法是,对于Raspi来说,解码mp3可能有点太多了,特别是因为超频有点帮助。 所以现在我将mp3转换为服务器上的wav文件,然后将其传输到Raspi,使用javax.sound.sampled。*填充它。然而,没有改善:|
有没有人在Raspi上从Java播放soundFiles有经验?任何建议都有帮助!
谢谢,Stefan
答案 0 :(得分:1)
我建议您尝试使用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上,如果你这样做,你就有更好的机会让事情发挥作用。