AudioDevice unavailable

Hi,
hab in Java einen MP3-Player geschrieben. Der hat aber leider unter Linux das Problem, dass immer das AudioDevice unavailable ist. Hier die Exception, die geworfen wird, wenn ich versuche etwas abzuspielen:

Code:
javax.sound.sampled.LineUnavailableException: Audio Device Unavailable
	at com.sun.media.sound.HeadspaceMixer.nResume(Native Method)
	at com.sun.media.sound.HeadspaceMixer.implOpen(HeadspaceMixer.java:346)
	at com.sun.media.sound.AbstractMixer.open(AbstractMixer.java:286)
	at com.sun.media.sound.AbstractMixer.open(AbstractMixer.java:323)
	at com.sun.media.sound.AbstractDataLine.open(AbstractDataLine.java:103)
	at javazoom.jlgui.basicplayer.BasicPlayer.openLine(Unknown Source)
	at javazoom.jlgui.basicplayer.BasicPlayer.initLine(Unknown Source)
	at javazoom.jlgui.basicplayer.BasicPlayer.startPlayback(Unknown Source)
	at javazoom.jlgui.basicplayer.BasicPlayer.play(Unknown Source)
	at mp3player.Player.playFile(Player.java:93)
	at mp3player.gui.MP3Player.actionPerformed(MP3Player.java:451)
	at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1849)
	at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2169)
	at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420)
	at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258)
	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:234)
	at java.awt.Component.processMouseEvent(Component.java:5488)
	at javax.swing.JComponent.processMouseEvent(JComponent.java:3126)
	at java.awt.Component.processEvent(Component.java:5253)
	at java.awt.Container.processEvent(Container.java:1966)
	at java.awt.Component.dispatchEventImpl(Component.java:3955)
	at java.awt.Container.dispatchEventImpl(Container.java:2024)
	at java.awt.Component.dispatchEvent(Component.java:3803)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4212)
	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3892)
	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3822)
	at java.awt.Container.dispatchEventImpl(Container.java:2010)
	at java.awt.Window.dispatchEventImpl(Window.java:1774)
	at java.awt.Component.dispatchEvent(Component.java:3803)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
	at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)

Was kann ich da tun?

mfg
serow
 
Also /dev/mixer gehört der Gruppe Audio in der ich bin. Aber das Verzeichnis /dev/sound existiert nicht, nur /dev/snd. Wenn snd sound heißen soll, habe ich die Rechte darauf nicht. Die hat nur die Gruppe root. Allerdings gehören alles devices in /dev/snd wieder der Gruppe audio.
Das Problem habe ich ja mit z.B. Totem nicht.
 
läuft gleichzeitig was anderes?
wenn /dev/dsp verwendet wird und nicht alsa hast du das problem das immer nur ein programm gleichzeitig sound ausgeben kann
 
hmm,
hört z.B. totem sofort auf das Device zu benutzen wenn ich auf das X drücke?
Wenn ja, dann dürfte kein anderen Programm das Device benutzen. Kann man denn irgendwie rausfinden welche Prozesse gerade ein Device benutzen?

mfg
serow
 
mit dem programm lsof kannst du das machen, einfach lsof /dev/dsp in die konsole tippseln und es gibt dir an welche programme das device verwenden
 
Zurück
Oben