MidiUnavailableException с использованием MidiSystem.getSequencer - PullRequest
3 голосов
/ 28 июня 2011

Я испортил это, случайно ответив на это: MidiUnavailableException в Java?

Итак, я задаю этот вопрос еще раз.Это связано с приведенным выше.

Я получаю исключение при попытке использовать:

MidiSystem.getSequencer()

Мой код показывает следующее:

com.sun.media.sound.RealTimeSequencer@1ded0fd

Iперепробовал все предложения в предыдущем вопросе.Кто-нибудь знает, как решить эту проблему?

Я использую jdk 1.6.0_25-b06 и Ubuntu 11.04 со всеми установленными текущими обновлениями.У меня не установлен JMF.Класс секвенсора загружен.У меня есть soundbank.gm в аудио каталоге под jre.Я попытался включить и отключить строки в файле 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-файлы на моей машине.Я думаю, у них есть свой собственный программный секвенсор (не уверен).

Любая помощь будет оценена.Спасибо!

1 Ответ

1 голос
/ 04 февраля 2012

Давайте установим alsa-oss.Затем вы можете запустить вашу программу с командами, начинающимися с «aoss», например:

aoss java -jar XXX

Если вы используете eclipse, вы можете запустить его и с aoss.Чем ваш код будет работать нормально.Я только что создал для него псевдоним для символической ссылки:

alias eclipse='LIBOVERLAY_SCROLLBAR=0 aoss eclipse-indigo &'

(LIBOVERLAY_SCROLLBAR - это решение для другой ошибки. Были случайные сбои jvm 2 или 3/10 часов.)

Другое решение - когда вы устанавливаете Java из репозитория, оно также будет работать

...