我在使用 Java 从 Raspi 中获得良好的声音时遇到了很大的问题。
我想为我用 Java 编写的媒体服务器编写一个小型 AirPlay 客户端。我开始使用 javazoom 中的 Player 类 ( http://www.javazoom.net/javalayer/docs/docs1.0/javazoom/jl/player/package-summary.html )。这给我带来的不是真正的断断续续,但不知何故扭曲,并且比我流式传输到 Raspi 的 mp3 文件的正常播放速度慢。
我的第一个想法是,也许 mp3 的解码对于 Raspi 来说有点太多了,特别是因为超频有一点帮助。 所以现在我将 mp3 转换为服务器上的 wav 文件,然后将其流式传输到 Raspi,使用 javax.sound.sampled.* 内容播放它。然而,没有任何改进:|
有人有在 Raspi 上播放 Java 声音文件的经验吗?任何建议都有帮助!
谢谢,斯特凡
最佳答案
我建议您尝试使用 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 上,如果您按照上述方式进行操作,您将有更好的机会让事情正常运行。
关于audio - 在 Raspi 上使用 javax.sound.sampled 和 openjdk-7,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19939555/