我不小心回答了这个问题,搞砸了这个: MidiUnavailableException in Java?
所以,我再次问这个问题。它与上面的相关。
尝试使用时出现异常:
MidiSystem.getSequencer()
我的代码显示以下内容:
com.sun.media.sound.RealTimeSequencer@1ded0fd
我已经尝试了上一个问题中的所有建议。有谁知道如何解决这个问题?
我正在使用jdk 1.6.0_25-b06和Ubuntu 11.04安装了所有当前更新。我没有安装JMF。已加载sequencer类。我在jre下的audio目录中有soundbank.gm。我已经尝试在sound.properties文件中启用和禁用行。我已经尝试重新启动计算机,以确保没有其他应用程序正在使用音响系统。
我得到以下异常:
javax.sound.midi.MidiUnavailableException at
javax.sound.midi.MidiSystem.getDefaultDeviceWrapper(MidiSystem.java:1078) at
javax.sound.midi.MidiSystem.getReceiver(MidiSystem.java:240) at
javax.sound.midi.MidiSystem.getSequencer(MidiSystem.java:442) at
javax.sound.midi.MidiSystem.getSequencer(MidiSystem.java:348) at
playmidi.PlayMidi.main(PlayMidi.java:57) Caused by:
java.lang.IllegalArgumentException: Requested device not installed at
javax.sound.midi.MidiSystem.getDefaultDevice(MidiSystem.java:1130) at
javax.sound.midi.MidiSystem.getDefaultDeviceWrapper(MidiSystem.java:1076) ... 4 more
有趣的是,其他应用程序(Banshee,RhythmBox等)可以在我的机器上播放midi文件。我猜他们有自己的软件序列器(不确定)。
任何帮助将不胜感激。谢谢!
答案 0 :(得分:1)
让我们安装alsa-oss。您可以使用以“aoss”开头的命令运行程序,如:
aoss java -jar XXX
如果你使用eclipse,你也可以用aoss运行它。比你的代码工作正常。我为它创建了一个别名,用于符号链接:
alias eclipse='LIBOVERLAY_SCROLLBAR=0 aoss eclipse-indigo &'
(LIBOVERLAY_SCROLLBAR是另一个bug的解决方案。有一些jvm 2或3/10小时的随机崩溃。)
另一个解决方案是当您从存储库安装内置java时,它也可以正常工作