1

我在使用 Java 从我的 Raspi 中获得好声音时遇到了很大的问题。

我想为我用 Java 编写的媒体服务器编写一个小 AirPlay 客户端。我开始使用 javazoom 中的 Player 类(http://www.javazoom.net/javalayer/docs/docs1.0/javazoom/jl/player/package-summary.html)。这给了我一个不是很断断续续但不知何故扭曲和慢于我流式传输到 Raspi 的 mp3 文件的正常播放。

我的第一个想法是,对于 Raspi 来说,mp3 的解码可能有点太多了,特别是因为超频有一点帮助。所以现在我将 mp3 转换为服务器上的 wav 文件,然后将其流式传输到使用 javax.sound.sampled.* 内容播放的 Raspi。然而,没有改善:|

有没有人在 Raspi 上从 Java 播放 soundFiles 的经验?任何建议都有帮助!

谢谢,斯特凡

4

1 回答 1

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 上,如果您按照上述方式进行操作,您就有更好的机会让事情正常进行。

于 2013-11-12T20:54:47.047 回答