这是问题所在:
线程“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:系统定时器
混音器:未在配置中启用
谢谢大家-这一直困扰着我。