LineUnavailableException nur unter Linux

Status
Nicht offen für weitere Antworten.

deathlock

Aktives Mitglied
Hallo Leute!

Ich verwende folgenden Code für einen AudioPlayer. Unter Windows funktioniert er prima, aber unter Linux bekomme ich immer eine LineUnavailableException. Kann mir jemand sagen woran das liegt? Vielen Dank.

Code:
import java.io.*;
import javax.sound.sampled.*;

class AudioPlayer
{
	private static final int	EXTERNAL_BUFFER_SIZE = 128000;
	File soundFile;
	AudioInputStream audioInputStream;
	
	public AudioPlayer()
	{
		soundFile = new File("test.wav");
		audioInputStream = null;
	}
		
	public void play()
	{
		try
		{
			audioInputStream = AudioSystem.getAudioInputStream(soundFile);
		}
		catch (Exception e)
		{
			MainClass.tfLog.setText("Error by trying to create AudioInputStream!");
		}

		AudioFormat	audioFormat = audioInputStream.getFormat();
		SourceDataLine	line = null;
		DataLine.Info	info = new DataLine.Info(SourceDataLine.class, audioFormat);
		try
		{
			line = (SourceDataLine) AudioSystem.getLine(info);
			line.open(audioFormat);
		}
		catch (LineUnavailableException e)
		{
			MainClass.tfLog.setText("Error by trying to reach SourceDataLine!");
		}
		catch (Exception e)
		{
			MainClass.tfLog.setText("Error by trying to open SourceDataLine!");
		}

		line.start();
		int	nBytesRead = 0;
		byte[]	abData = new byte[EXTERNAL_BUFFER_SIZE];
		while (nBytesRead != -1)
		{
			try
			{
				nBytesRead = audioInputStream.read(abData, 0, abData.length);
			}
			catch (IOException e)
			{
				MainClass.tfLog.setText("Error by trying to read stream size!");
			}
			if (nBytesRead >= 0)
			{
				int	nBytesWritten = line.write(abData, 0, nBytesRead);
			}
		}
		line.drain();
		line.close();
	}

}
[/code]
 

Mag1c

Top Contributor
Hi,

ich denke mal, das liegt weniger an deinem Java-Code sondern an deiner Audio-Konfiguration.

Welches Sound-System benutzt du ? Benutzt du KDE ?

Ich hab mit dem Java-AudioSystem noch nichts gemacht. Das muß doch unter Linux bestimmt
konfiguriert werden, oder ?

Gruß
Mag1c
 

deathlock

Aktives Mitglied
Nein ich benutze Gnome. Also an sich müsste es doch passen. Mein selbstprogrammierter AudioRecorder funktioniert problemlos und auch abspielen lässt sich das wav-File gut mit einem Linux-AudioPlayer, bloss mit meinem AudioPlayer gehts nicht. Soll ich vielleicht noch den Code vom AudioRecorder und von der MainClass posten, die spielen nämlich alle drei zusammen.

Ich könnte mir nur vorstellen, dass er entweder keine Rechte hat (was eigentlich nicht sein kann weil chmod 777), oder dass das File von einem anderen Prozess verwendet wird (was ich auch nicht glaube, da es im AudioRecorder nach der Aufnahme ordnungsgemäß geschlossen wird, und ausserdem unter Windows funktionierts).

Was sollte ich denn eventuell ändern an meinen Audio Konfigurationen?

LG, deathlock.
 

Mag1c

Top Contributor
Hi,

wie ist denn das AudioSystem konfiguriert ? Soll die Ausgabe über /dev/dsp gehen ? Hast du
mal probiert, ob du über die Konsole dort was ausgeben kannst ?

Du könntest evtl. mit "lsof" feststellen, wer das Sound-Device geöffnet hat.

Der AudioRecorder greift ja auf ein Recording-Device zu. Das ist doch aus Sicht des Sound-Systems
ein eigenes Device. Der Zugriff darauf ist völlig unabhängig vom Ausgabe-Device.

Gruß
Mag1c
 

deathlock

Aktives Mitglied
Hi danke für die Antwort. Ich muss leider erst noch schauen wie das AudioSystem konfiguriert ist, da ich hier in der Firma kein Linux habe. Werd dir nach Feierabend sofort zurückschreiben.

Auf alle Fälle freut es mich zu hören, dass Recording und Ausgabe gleichzeitig laufen können, aber da es ja dasselbe File ist, kann es doch trotzdem Probleme geben, oder?

Danke nochmals, deathlock.
 

Mag1c

Top Contributor
Hi,

ja, die gleichzeitige Ein- und Ausgabe sollten moderne Soundkarten eigentlich alle beherrschen.
Leider gibt es immernoch Karten/Treiber, die das nicht oder nur fehlerhaft unterstützen.
Evtl. mußt du das erst noch am Treiber aktivieren.

Gruß
Mag1c
 

deathlock

Aktives Mitglied
Guten Morgen,
Also ich hab mich jetzt mal in meinem Ubuntu umgesehn und die einzige Einstellung, die ich vornehmen kann ist, die Auswahl des Audiooutputs. Da gibt es vier Möglichkeiten und mit keiner von denen hat es funktioniert. Die Datei /dev/dsp gibts bei mir leider nicht und ich hätte auch keine Ahnung wie ich die Ausgabe darauf lenken könnte, bzw. wie ich zu dieser Datei kommen kann. Ich weiss leider auch nicht wie ich über die Konsole Sound ausgeben kann. Wie gesagt, die Ausgabe von wav-Files via Totem funktioniert, jedoch nicht mit meinem Programm.

Kannst du mir noch ein bisschen weiterhelfen?

Thx, LG, deathlock.
 

Mag1c

Top Contributor
Moin,

hmm, das wird jetzt schwierig, da ich, wie schon geschrieben, das Java-AudioSystem noch nicht benutzt habe. Und Gnome nutze ich auch nicht :roll:
Wie genau sehen denn die Möglichkeiten für den AudioOutput aus ? Du müsstest mal herausbekommen,
welches Sound-System du benutzt und wie es konfiguriert ist.

Wenn du nicht weiterkommst, wäre mal der Output folgender Befehle interessant:

ps ax | grep sound
find /etc -name "*sound*"
ls -la /dev/sound
dpkg -l "*sound*"
dpkg -l "*alsa*"

Gruß
Mag1c
 

deathlock

Aktives Mitglied
Also die vier Möglichkeiten, die ich auswählen kann sind:
- ALSA
- ESD
- OSS
- Custom
leider funktionierts mit keiner der besagten. Beim automatischen Ubuntu-Soundtest funktioniert nur ESD.

Der output der Befehle ist:

Code:
bojan@ubuntu:~$ ps ax | grep sound
 9935 pts/0    R+     0:00 grep sound
bojan@ubuntu:~$ find /etc -name "*sound*"
find: /etc/lvm/archive: Permission denied
find: /etc/lvm/backup: Permission denied
/etc/gconf/schemas/gnome-sound-recorder.schemas
/etc/gconf/gconf.xml.defaults/schemas/desktop/gnome/sound
/etc/gconf/gconf.xml.defaults/schemas/apps/gnome-sound-recorder
/etc/gconf/gconf.xml.defaults/schemas/apps/gnomemeeting/general/sound_events
/etc/gconf/gconf.xml.defaults/schemas/apps/sound-juicer
/etc/gconf/gconf.xml.defaults/schemas/apps/gossip/sound
/etc/gconf/gconf.xml.defaults/desktop/gnome/sound
/etc/gconf/gconf.xml.defaults/apps/gnome-sound-recorder
/etc/gconf/gconf.xml.defaults/apps/gnomemeeting/general/sound_events
/etc/gconf/gconf.xml.defaults/apps/sound-juicer
/etc/gconf/gconf.xml.defaults/apps/gossip/sound
/etc/esound
/etc/sound
/etc/sound/events/gtk-events-2.soundlist
/etc/sound/events/battstat_applet.soundlist
/etc/sound/events/iagno.soundlist
/etc/sound/events/gnobots2.soundlist
/etc/sound/events/gnibbles.soundlist
/etc/sound/events/gtk-events.soundlist
/etc/sound/events/gnome-2.soundlist
/etc/sound/events/gnome.soundlist
find: /etc/icecast2: Permission denied
bojan@ubuntu:~$ ls -la /dev/sound
ls: /dev/sound: No such file or directory
bojan@ubuntu:~$ dpkg -l "*sound*"
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Installed/Config-files/Unpacked/Failed-config/Half-installed
|/ Err?=(none)/Hold/Reinst-required/X=both-problems (Status,Err: uppercase=bad)
||/ Name           Version        Description
+++-==============-==============-============================================
ii  esound         0.2.35-2ubuntu Enlightened Sound Daemon - Support binaries
un  esound-alsa    <none>         (no description available)
un  esound-clients <none>         (no description available)
ii  esound-common  0.2.35-2ubuntu Enlightened Sound Daemon - Common files
ii  libasound2     1.0.8-1        ALSA library
ii  sound-juicer   2.10.1-0ubuntu GNOME 2 CD Ripper
un  sound-monitor  <none>         (no description available)
ii  ubuntu-sounds  0.3            Ubuntu's GNOME audio theme
un  zinf-plugin-es <none>         (no description available)
bojan@ubuntu:~$ dpkg -l "*alsa*"
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Installed/Config-files/Unpacked/Failed-config/Half-installed
|/ Err?=(none)/Hold/Reinst-required/X=both-problems (Status,Err: uppercase=bad)
||/ Name           Version        Description
+++-==============-==============-============================================
un  alsa           <none>         (no description available)
ii  alsa-base      1.0.8-4ubuntu4 ALSA driver configuration files
un  alsa-base-0.4  <none>         (no description available)
un  alsa-modules   <none>         (no description available)
un  alsa-oss       <none>         (no description available)
ii  alsa-utils     1.0.8-1ubuntu1 ALSA utilities
un  alsa-utils-0.5 <none>         (no description available)
un  alsa-xmms      <none>         (no description available)
un  alsaconf       <none>         (no description available)
un  alsaconf-0.4   <none>         (no description available)
un  alsalib        <none>         (no description available)
un  alsalib0.1.3   <none>         (no description available)
un  alsalib0.3.0   <none>         (no description available)
un  alsalib0.3.2   <none>         (no description available)
un  alsautils      <none>         (no description available)
un  esound-alsa    <none>         (no description available)
ii  gstreamer0.8-a 0.8.8-1ubuntu4 ALSA plugin for GStreamer
un  libarts-alsa   <none>         (no description available)
un  libesd-alsa0   <none>         (no description available)
un  libesd-alsa0-d <none>         (no description available)
un  libkmid-alsa   <none>         (no description available)
ii  libpt-plugins- 1.8.4-1        Portable Windows Library Audio Plugin for th
un  libsdl1.2debia <none>         (no description available)
un  zinf-plugin-al <none>         (no description available)

Das Ganze sagt mir leider nicht viel. Weisst du da was?

Vielen Dank, lg, deathlock.
 

deathlock

Aktives Mitglied
Übrigens habe ich festgestellt, dass es auch unter Windows, bzw. anderen Linuxsystemen zu Problemen kommt (konkrät: der AudioRecorder funktioniert nicht - wenn ich recorde, wird einfach ein leeres Audiofile erstellt.

Hier nochmal der SourceCode vom AudioRecorder:

Code:
import javax.sound.sampled.*;
import java.io.*;

class AudioRecorder extends Thread
{
	private TargetDataLine m_line;
	private AudioFileFormat.Type m_targetType;
	private File m_outputFile;
	private AudioInputStream m_audioInputStream;
	
	public AudioRecorder()
	{
		File outputFile;
		AudioFormat	audioFormat;
		DataLine.Info	info;
		TargetDataLine	targetDataLine = null;
		AudioFileFormat.Type targetType = AudioFileFormat.Type.WAVE;
		
		outputFile =  new File("test.wav");
		audioFormat = new AudioFormat(AudioFormat.Encoding.PCM_SIGNED, 44100.0F, 16, 2, 4, 44100.0F, false);
		info = new DataLine.Info(TargetDataLine.class, audioFormat);
		
		try
		{
			targetDataLine = (TargetDataLine) AudioSystem.getLine(info);
			targetDataLine.open(audioFormat);
		}
		catch(LineUnavailableException e)
		{
			MainClass.tfLog.setText("Errory by creating DataLine!");
		}

		m_line = targetDataLine;
		m_targetType = targetType;
		m_audioInputStream = new AudioInputStream(targetDataLine);
		m_outputFile = outputFile;	
		targetDataLine.close();
	}
	
	public void startRecording()
	{
		m_line.start();
		super.start();
	}
	
	public void stopRecording()
	{
		m_line.stop();
		m_line.close();
		try
		{
			m_audioInputStream.close();
		}
		catch(IOException e)
		{
			MainClass.tfLog.setText("Error by closing audioInputStream!");
		}
	}
	
	public void run()
	{
			try
			{
				AudioSystem.write(
					m_audioInputStream,
					m_targetType,
					m_outputFile);
			}
			catch (IOException e)
			{
				MainClass.tfLog.setText("Error by writing of AudioStream!");
			}
	}
}
 

Mag1c

Top Contributor
Moin,

also ich würde dir ja gerne weiterhelfen. Aber ich habe den ganzen Kram noch nie benutzt und im Moment keine Zeit, das auszuprobieren. Wäre gut, wenn sich mal jemand findet, der mit dem AudioSystem schon programmiert hat.

Gruß
Mag1c
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
A Java unter Win 10 Allgemeine Java-Themen 1
M Eclipse unter Linux Lite Allgemeine Java-Themen 2
N iText keine Sonderzeichen und Umlaute unter Windows Allgemeine Java-Themen 13
MarekLanger Filebeat in Docker unter Windows Allgemeine Java-Themen 1
H Java SDK unter 32 Bit Allgemeine Java-Themen 5
Killunox MaxHeap Zuweisung unter Linux funktioniert nicht Allgemeine Java-Themen 1
L Tesseract-OCR 4.0 unter Linux funktioniert nicht Allgemeine Java-Themen 3
J Wie konkret funktioniert das Modulsystem unter Java 11? Allgemeine Java-Themen 4
J jar Dateien unter Windows 7 mit spezifischer jdk öffnen Allgemeine Java-Themen 2
I GUI für kleine Pop-Ups unter Windows Allgemeine Java-Themen 1
H Änderung im maximalen heap space unter Windows 7 ?! Allgemeine Java-Themen 5
E Erfahrungen mit Java/JS Bridge unter nodejs und NodeJS/C++ Bridge Allgemeine Java-Themen 0
Neumi5694 Task-Name unter Windows Allgemeine Java-Themen 4
T PDF-Generierung (itext) - läuft unter Eclipse, bei har aber leere Seite Allgemeine Java-Themen 39
S Korrekte Pfadangaben damit eine .jar Datei unter Windwos läuft. Allgemeine Java-Themen 24
K USB infos unter Linux abfragen? Allgemeine Java-Themen 2
K jar-Datei lässt sich unter Windows nicht verwenden Allgemeine Java-Themen 3
N Lizenzensierung von Java Programmen unter Linux Allgemeine Java-Themen 3
H Summe aller Vielfachen von 3 oder 5 unter 1000. Allgemeine Java-Themen 7
krgewb LookAndFeel unter Mac OS Allgemeine Java-Themen 1
Cromewell JavaFX FXML-File lädt unter Ubuntu nicht Allgemeine Java-Themen 7
D JRE in .jar verpacken unter Windows Allgemeine Java-Themen 4
D Aktuell installierte Java Version auslesen unter Windows Allgemeine Java-Themen 5
R probleme beim starten von jar unter linux Allgemeine Java-Themen 2
S Executable Jar File startet nicht unter Windows 10 Allgemeine Java-Themen 3
C Windows RCP Application unter Linux bauen lassen Allgemeine Java-Themen 3
X Zeile unter einer bestimmen Zeile hinzufügen(File) Allgemeine Java-Themen 1
E Anwendung verhält sich unter Mac anders als Unter Windows. Allgemeine Java-Themen 4
F URI-Scheme mit Java unter MacOS erstellen? Allgemeine Java-Themen 0
E Drucken einer Pdf Datei unter Java. Allgemeine Java-Themen 1
E Sonderzeichen nicht setzbar: Großes Problem bei Programmierung unter Linux Mint mit Virtual Box Allgemeine Java-Themen 5
F Mencoder unter Java Ausführen Allgemeine Java-Themen 0
G Methoden HashMap speichert unter falschen Schlüsseln Allgemeine Java-Themen 6
G IR Fernbedienung unter Java Allgemeine Java-Themen 0
G Wie installiere ich javax-usb unter windows? Allgemeine Java-Themen 0
S JAAS unter Ubuntu? Allgemeine Java-Themen 0
J Compiler-Fehler Compiliert unter Eclipse aber nicht mit javac Allgemeine Java-Themen 0
M Code läuft unter windows aber nicht unter Linux Allgemeine Java-Themen 6
Guybrush Threepwood Kein user.home unter Windows8 Allgemeine Java-Themen 7
P java.nio.file unter Java 6 verwenden Allgemeine Java-Themen 4
R Java-Progamm über Icon starten unter Windows Allgemeine Java-Themen 9
C JasperReports, PDF und "Speichern unter"-Dialog Allgemeine Java-Themen 7
P Eclipse Unter Windows erstelle .jar unter Linux (Ubuntu) funktioniert nicht Allgemeine Java-Themen 5
R ZIP FileSystem unter Windows wirft exception Allgemeine Java-Themen 7
G Runtime.exec beendet Programm unter Linux, wenn Java Programm beendet wird Allgemeine Java-Themen 3
G RXTX native library unter Linux in jar build angeben Allgemeine Java-Themen 4
C Darstellungsproblem unter Debian und OpenJDK Allgemeine Java-Themen 5
R Umlautproblem unter Linux Allgemeine Java-Themen 10
C derby db unter mac os Allgemeine Java-Themen 8
B File Seperator unter verschiedenen OS Allgemeine Java-Themen 2
T Jar File läuft unter Windows aber nicht unter linux Allgemeine Java-Themen 10
B Methode läuft nicht unter UNIX Allgemeine Java-Themen 6
F Process.getInputStream unter Linux Allgemeine Java-Themen 7
S Java-Installation unter Sun OS Allgemeine Java-Themen 3
K Xattr Mac unter Java ansprechen Allgemeine Java-Themen 17
D Clipboard getSystemSelection() funktioniert unter Windows* nicht Allgemeine Java-Themen 3
M Nach Programmdurchlauf werden Zeichen falsch dargestellt + Anderes Verhalten unter Windows Allgemeine Java-Themen 6
L Sicherstellen das 2x die gleichen Daten unter bestimmten Keys enthalten sind. Allgemeine Java-Themen 6
T Javaprogramm unter Linux auf bestimmten Kern starten/laufen lassen ? Allgemeine Java-Themen 22
J Path-Eintrag unter Windows 7 Allgemeine Java-Themen 11
F Eclipse JAVAMAIL läuft nur unter Eclipste Applet Viewer Allgemeine Java-Themen 4
C .jar unter Windows7 über den Explorer starten Allgemeine Java-Themen 6
S (Doppel)Klick-Verhalten vom Desktop unter Java imitieren. Allgemeine Java-Themen 5
Z Probleme mit Java unter Vista/ Windows 7 Allgemeine Java-Themen 12
M Realisierung einer dynamischen Tabelle unter Android Allgemeine Java-Themen 3
C Datei auslesen wie unter Linux mit "tail -f" Allgemeine Java-Themen 3
J Java-Datei unter Mac OS X öffnen - eine Frage der Klasse Allgemeine Java-Themen 2
G Textdatei einlesen unter Windows 7 Allgemeine Java-Themen 4
D Objekte nur unter bestimmten Voraussetzungen erzeugen Allgemeine Java-Themen 4
H String spliten unter berücksichigung von " und \" Allgemeine Java-Themen 7
V linuxprogramm unter java aufrufen??? Allgemeine Java-Themen 4
ruutaiokwu welches design pattern? frage an die oo-experten unter euch... Allgemeine Java-Themen 3
N JAR Datei ausführen unter Angabe einer speziellen Klasse Allgemeine Java-Themen 2
J Eclipse unter Windows 7 Allgemeine Java-Themen 5
T Pfad Anwendungsdaten unter Windows ermitteln Allgemeine Java-Themen 3
B Java Applet unter Mac wird nicht angezeigt Allgemeine Java-Themen 6
A CLASSPATH unter Debian Lenny Allgemeine Java-Themen 4
A Umgebungsvariable unter Windows Vista setzen Allgemeine Java-Themen 60
M Log4J funktioniert nicht unter anderem Benutzer Allgemeine Java-Themen 5
E Alle unter Prozesse der beim schließen mit schließen Allgemeine Java-Themen 3
J dialogys unter linux Allgemeine Java-Themen 4
S Problem beim Drucken auf Netzwerkdrucker unter Linux Allgemeine Java-Themen 9
R Sound unter Java Allgemeine Java-Themen 12
I Fehler unter 64Bit JDK Allgemeine Java-Themen 4
S Jar und Exe verhalten sich unterschiedlich unter Vista Allgemeine Java-Themen 8
D Botschaftssendung unter Klassen Allgemeine Java-Themen 4
H JDIC unter 1.5 Allgemeine Java-Themen 2
G Generics - W.card unter Nutzung von Annotationsklasse? Allgemeine Java-Themen 6
B Frage zu Sichtbarkeit in (Unter)Paketen Allgemeine Java-Themen 9
F Document öffnen unter Linux Allgemeine Java-Themen 4
0 kein Java unter Server 2008 ? Allgemeine Java-Themen 3
J Runtime.exec unter win vista? Allgemeine Java-Themen 10
S unter UNIX - (symbolic) links erkennen? Allgemeine Java-Themen 12
L dateizugriff unter windows nicht behindern Allgemeine Java-Themen 2
W Deployment unter Linux Allgemeine Java-Themen 17
M Drag and Drop FileListFlavor unter Ubuntu - Nautilus Allgemeine Java-Themen 5
F Hilfe beim Starten einer Java Anwendung unter Windows gesuch Allgemeine Java-Themen 8
L Java 1.5 - Anwendung unter 1.6 JRE sehr langsam geworden Allgemeine Java-Themen 8
P JUnit unter Eclipse: Problem mit Exception Allgemeine Java-Themen 8
G Problem mit Serialisiertem Objekt (unter Objekte fehlen?) Allgemeine Java-Themen 5

Ähnliche Java Themen


Oben