Eclipse、Java、Midi、Linux(Debian)-sequencer问题

Eclipse、Java、Midi、Linux(Debian)-sequencer问题,java,eclipse,debian,midi,jfugue,Java,Eclipse,Debian,Midi,Jfugue,问题是: 线程“main”org.jfugue.jfugue异常:MIDI系统无法实例化sequencer。虽然JFugue报告了此错误,但问题不在于JFugue本身。查找有关在特定系统上使用MIDI的资源。来自MidiSystem.getSequencer()的异常消息为:null 以下是全部代码: import org.jfugue.*; import javax.sound.midi.*; public class HelloWorld { pu

问题是:

线程“main”org.jfugue.jfugue异常:MIDI系统无法实例化sequencer。虽然JFugue报告了此错误,但问题不在于JFugue本身。查找有关在特定系统上使用MIDI的资源。来自MidiSystem.getSequencer()的异常消息为:null

以下是全部代码:

    import org.jfugue.*;
    import javax.sound.midi.*;

    public class HelloWorld {

        public static void main(String[] args){     

        MidiDevice.Info[] devices = MidiSystem.getMidiDeviceInfo();

        if (devices.length == 0) {
            System.out.println("No MIDI devices found");
        } else {
            for (MidiDevice.Info dev : devices) {
                System.out.println(dev.getName());
            }
        }

        Player player = new Player();
        player.play("A B C");

        System.exit(0);
    }
}
以及输出:

Real Time Sequencer
Exception in thread "main" org.jfugue.JFugueException: The MIDI System cannot instantiate a sequencer.  Although this error is reported by JFugue, the problem is not with JFugue itself.  Find resources for using MIDI on your specific system.  The exception message from MidiSystem.getSequencer() is: null
    at org.jfugue.Player.<init>(Player.java:82)
    at org.jfugue.Player.<init>(Player.java:65)
    at HelloWorld.main(HelloWorld.java:20)
实时定序器
线程“main”org.jfugue.jfugue异常:MIDI系统无法实例化sequencer。虽然JFugue报告了此错误,但问题不在于JFugue本身。查找有关在特定系统上使用MIDI的资源。来自MidiSystem.getSequencer()的异常消息为:null
在org.jfugue.Player。(Player.java:82)
在org.jfugue.Player。(Player.java:65)
位于HelloWorld.main(HelloWorld.java:20)
我使用apt-get中的一个包运行Eclipse-'sun-java6-jdk',它将自己解压到一个jvm目录中。我使用JRE1.5进行编译,使用1.6进行运行。我使用1.5进行编译,因为这是与jfugue4.0兼容的版本

这可能是问题所在-我的ALSA“aplay”命令不“播放”文件。我可以从命令行使用VLC媒体播放器或Timmity,我可以得到声音。此外,扬声器测试也可以工作。为什么命令行“aplay”不能工作呢?这是java问题的症状吗

EDIT:aplay确实有效。抱歉,刚刚重新测试。

编辑:下面是“cat/dev/sndstat/”的结果

声音驱动程序:3.8.1a-980706(ALSA v1.0.24仿真代码)内核:Linux sean debian 3.2.0-4-amd64#1 SMP debian 3.2.68-1+deb7u2 x86_64配置 选项:0

已安装的驱动程序:类型10:ALSA仿真

卡配置:HDA ATI SB at 0xd0400000 irq 16 HDA ATI HDMI at 0xd0310000 irq 19

音频设备:未在配置中启用

Synth设备:未在配置中启用

Midi设备:未在配置中启用

计时器:31:系统计时器

混音器:未在配置中启用


谢谢大家,这一直困扰着我

请确认,鉴于对您的问题所做的编辑:您是否正在自行解决这个问题(关于您的系统设置),或者您是否仍然需要JFugue库的帮助?谢谢您的回答!是的,我很难在Linux上用Java(Eclipse或命令行)运行任何声音。我可以让MIDI与其他应用程序一起工作,当然我的扬声器也可以正常工作。任何建议或经验都会很好!谢谢你可能会错过一个音箱。请看一下本页的安装说明:如果您发现上面提到的文件夹是空的,请从该页下载一个声音库(我建议是豪华版)并安装它。好的-使用“aoss”命令可以工作,如下所示:“aoss java HelloWorld”。然后,奇怪的是,即使重新启动计算机,我也不必再使用“aoss”命令。我希望我知道为什么会发生这个问题,为什么“AOS”会永久地修复它,但我不知道@Davidkoelle有几件事需要考虑:1)为什么您使用ALSA的OSS仿真而不是直接使用ALSA?2) 使用以下工具检查MIDI设备:
amidi-l
3)使用
aseqdump-l
4)分别使用
aplay-l
arecord-l
检查音序器客户端和端口。这是试图理解您的系统的一个起点,并从此继续。