使用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上,如果您如上所述进行操作,则更有机会使事情正常进行。

08-24 22:10