【问题标题】:Why does this audio file work in Windows, but not Ubuntu?为什么这个音频文件可以在 Windows 中工作,而不是 Ubuntu?
【发布时间】:2015-04-27 04:59:15
【问题描述】:

我采取了以下步骤,使用我在以下位置找到的音频文件制作了一个 JAR 文件:http://www.orangefreesounds.com/loud-alarm-clock-sound/

  1. 打开 Eclipse,新建一个 Java 项目。
  2. 下载音频文件,放在项目的src/sound-effects文件夹中。
  3. 将下面的代码复制并粘贴到某个名为Sandbox 的类中
  4. Project Explorer 窗口中(可能在屏幕的左侧),右键单击您的项目并单击Export ... 作为JAR file
  5. 使用java -jar在Windows或Linux系统的终端运行它。

文件结构应如下所示:

我的电脑上安装了x64 Windows 8.1x64 Ubuntu 14.04。我的问题是:为什么这个 JAR 程序可以在 Windows 中运行,而不是 Ubuntu?

import java.io.IOException;
import java.net.URL;
import javax.sound.sampled.*;

public class Sandbox
{

    public static void main(String[] args)
            throws UnsupportedAudioFileException, IOException,
            LineUnavailableException
    {

        URL url = Sandbox.class
                .getResource("/sound-effects/Loud-alarm-clock-sound.wav");
        AudioInputStream ais = AudioSystem.getAudioInputStream(url);
        AudioFormat af = ais.getFormat();
        DataLine.Info info = new DataLine.Info(Clip.class, af);

        Clip clip = (Clip) AudioSystem.getLine(info);
        clip.open(ais);
        clip.start();
        System.out.println("Drain...");
        clip.drain();
        System.out.println("...Drained");
    }
}

【问题讨论】:

    标签: java eclipse windows ubuntu audio


    【解决方案1】:

    这里的问题是我在我的 Ubuntu 系统上安装了OpenJDK 1.7(或IcedTea),在我的 Windows 系统上安装了Oracle JDK 1.8。如您所知,OpenJDK 只是 Oracle 的 JVM 和编译器的开源版本。遗憾的是,这意味着它存在一些兼容性问题,例如无法播放某些音频文件。

    我只是按照此处的说明卸载了OpenJDK 1.7
    https://askubuntu.com/questions/335457/how-to-uninstall-openjdk

    然后我使用这个链接安装了Oracle JDK 1.8
    http://www.webupd8.org/2012/09/install-oracle-java-8-in-ubuntu-via-ppa.html

    现在我的音频文件可以在 Ubuntu 和 Windows 上正常播放了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-01-02
      • 2020-05-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多