2

这是问题所在:

线程“main”org.jfugue.JFugueException 中的异常:MIDI 系统无法实例化音序器。虽然这个错误是 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)

我正在使用来自 apt-get - 'sun-java6-jdk' 的包运行 Eclipse,它将自身解压到 jvm 目录。我使用 JRE1.5 进行编译,使用 1.6 进行运行。我使用 1.5 进行编译,因为那是与 jfugue4.0 兼容的版本。

不过,这可能是问题所在——我的 ALSA 'aplay' 命令不会'播放'文件。我可以从命令行使用 VLC 媒体播放器或胆怯,并且我得到了声音。此外,扬声器测试有效。为什么命令行“aplay”也不起作用?这是java问题的症状吗?

编辑: 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

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

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

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

合成器设备:未在配置中启用

Midi 设备:未在配置中启用

定时器:31:系统定时器

混音器:未在配置中启用

谢谢大家-这一直困扰着我。

4

0 回答 0