audio - 在 Raspi 上使用 javax.sound.sampled 和 openjdk-7

标签 audio raspberry-pi java

我在使用 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/

相关文章:

java - Android 贪吃蛇游戏(如何添加音频)?

java - 触摸按钮时发出哔声

android - 如何将两个 mp3 文件合并为一个(合并/加入)

java - 了解 Java 无符号数

c++ - 使用SDL在后台播放MP3时产生声音效果

linux - 相当于 OpenELEC 上的 apt-get

linux - openCV库GLIBC编译错误

linux - PC的远程配置

java - Lucene:单个术语中的多个单词

java - Spring 3,在非托管类中注入(inject) bean 的可配置注释的风险?