gpt4 book ai didi

linux - Java 在 Windows 上播放音频,但在 Ubuntu 上不播放

转载 作者:行者123 更新时间:2023-12-02 22:52:22 28 4
gpt4 key购买 nike

我一直在写一个 Java 程序来播放一些 .wav 格式的曲子。

在开发过程中,音频在我的 Windows 机器上播放良好,但是在 Ubuntu 上尝试相同的代码时,音频无法播放。控制台没有记录任何错误,我按下“播放”按钮,没有任何 react 。

这是我一直在使用的代码,还包含一些日志记录代码:

try {
System.out.println("All mixers:");
for (Mixer.Info m : AudioSystem.getMixerInfo()) {
System.out.println(m.getName());
}

System.out.println("Default mixer: " + AudioSystem.getMixer(null).getMixerInfo());

AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(new File("bsc.wav"));
Clip clip = AudioSystem.getClip();
clip.open(audioInputStream);
clip.start();
} catch (UnsupportedAudioFileException ex) {
ex.printStackTrace();
} catch (IOException ex) {
ex.printStackTrace();
} catch (LineUnavailableException ex) {
ex.printStackTrace();
}

这输出:
All mixers:
Port HDMI [hw:0]
Port PCH [hw:1]
Port Snowball [hw:2]
HDMI [plughw:0,3]
HDMI [plughw:0,7]
HDMI [plughw:0,8]
PCH [plughw:1,0]
PCH [plughw:1,1]
PCH [plughw:1,2]
Snowball [plughw:2,0]
Default mixer: HDMI [plughw:0,3], version 5.3.0-51-generic

认为这比代码更可能是我的设置问题,所以认为这适合 super 用户。还编写了一些代码来尝试其他可用的混音器,但这些都不起作用。

环顾四周,确实听说需要安装 JMF,但找不到它是否真的是解决方案。

运行 Ubuntu 19.10 和 Java 11.0.7 OpenJDK。

编辑1;找到 this page关于 Java 声音的 StackOverflow。尝试运行示例代码但也无济于事......

最佳答案

这里有几件事需要调查和(可能)排除。

  • 你的按钮是JavaFX吗?如果是这样,您是否验证过 JavaFX 是否正常工作?
  • 您是否验证了File的地址?正在创建的对象?
  • 尝试使用 URL作为您的 AudioSystem.getAudioInputStream 参数,使用 class.getResource(URL) 设置它。
  • 使用 ais 获取 Dataline.Info对象作为过程的一部分。

  • 使用 Dataline.Info 的代码如下:
    AudioInputStream ais = AudioSystem.getAudioInputStream(url);
    DataLine.Info info = new DataLine.Info(Clip.class, ais.getFormat());
    Clip clip = (Clip) AudioSystem.getLine(info);
    clip.open(ais);

    您可以检查 Clip在播放之前在调试器中。检查 .audioData 属性,以验证数据是否已加载到内存中。您还可以在此处验证音频格式。

    我刚刚经历了一个复杂的尝试,试图让一个在 Windows 中制作的 jar 文件在 Ubuntu 18.04 上执行。事实证明它实际上与 JavaFX 相关。一旦我解决了这个问题,程序就会运行(包括它的音频)。处理音频 Assets 时,我总是使用 URL。

    关于linux - Java 在 Windows 上播放音频,但在 Ubuntu 上不播放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61528808/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com