Mehrere Programme gleichzeitig Sound ausgeben: Unterschied zwischen den Versionen

Aus Linupedia.org
Wechseln zu: Navigation, Suche
K (Navigationslinks optisch verbessert)
 
(10 dazwischenliegende Versionen von 4 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
Hi!
+
Da hier öfters mal die Frage aufkommt wieso einige Games trotz funktionieren von XMMS und Co. keinen Sound liefern, liefere ich mal ein paar Hints dazu:  
Da hier öfters mal die Frage aufkommt wieso einige Games trotz funktionieren von XMMS und Co. keinen Sound liefern, liefere ich mal ein paar Hints dazu:  
+
 
 
   
 
   
1.) Mal probieren ob der Sound im Game ohne den Arts-Soundserver oder ESD denn läuft.  
+
1.) Mal probieren, ob der Sound im Game ohne den Arts-Soundserver oder ESD denn läuft. Dazu bei Nutzung von Arts den artsd beenden mit Hilfe von  
Dazu bei Nutzung von Arts den artsd beenden mit Hilfe von  
+
  killall artsd
{| killall artsd|}
+
bzw. im Fall von esd  
  bzw. im Fall von esd  
+
  killall esd  
{| killall esd |}
+
2.) Wenn ein Game mit dem Loki-Installer installiert wurde, kann man auch probieren im jeweiligen Startscript, welches im Normalfall, sofern es vom User root installiert wurde und unter /usr/local/bin liegt bzw. dort verknüpft ist, direkt(!) vor dem Aufruf des eigentlichen Binaries des Games
 
+
artsdsp -m
 +
einzufügen. Im Falle von beispielsweise ReturnToCastleWolfenstein:EnemyTerritories wäre das direkt vor " et.x86" und direkt nach dem vor dem et.x86 stehenden "exec ".
 
   
 
   
2.) Wenn ein Game mit dem Loki-Installer installiert wurde kann man auch probieren im jeweiligen Startscript, welches im Normalfall, sofern es vom User root installiert wurde, unter /usr/local/bin liegt bzw. dort verknüpft ist, direkt(!) vor dem Aufruf des eigentlichen Binaries des Games
+
3.) Wenn man nun z.B. TeamSpeak zusätzlich nutzen will reicht diese Maßnahme meist nicht wirklich aus. Dazu sollte man dem Game eben den direkten Zugriff auf die Soundausgabe ermöglichen, was dann an allen Soundservern im Hintergrund (also egal ob Arts oder ESD) vorbeigeht und wodurch TeamSpeak eben auch der Meinung ist das Sounddevice wäre frei und weswegen dann eben beide, das Game und TeamSpeak, das Sounddevice zeitgleich nutzen können.  
Code:
+
 
  artsdsp -m
+
Dazu hab ich mir vor einiger Zeit folgendes Script namens directsound.sh geschrieben:  
  einzufügen. Im Falle von beispielsweise ReturnToCastleWolfenstein:EnemyTerritories wäre das direkt vor " et.x86" und direkt nach dem vor dem et.x86 stehenden "exec ".
 
 
   
 
   
  3.)Wenn man nun z.B. TeamSpeak zusätzlich nutzen will reicht diese Maßnahme meist nicht wirklich aus. Dazu sollte man dem Game eben den direkten Zugriff auf die Soundausgabe ermöglichen, was dann an allen Soundservern im Hintergrund (also egal ob Arts oder ESD) vorbeigeht und wodurch TeamSpeak eben auch der Meinung ist das Sounddevice wäre frei und weswegen dann eben beide,das Game und TeamSpeak, das Sounddevice zeitgleich nutzen können.
+
  #!/bin/sh  
Dazu hab ich mir vor einiger Zeit folgendes Script namens directsound.sh geschrieben:
 
 
Code:
 
  #!/bin/sh  
 
 
  # als ersten Parameter den Namen des Game-binaries übergeben und als ggf. zweiten den Namen des Gamestartscripts  
 
  # als ersten Parameter den Namen des Game-binaries übergeben und als ggf. zweiten den Namen des Gamestartscripts  
 
  # Bei Bedarf auskommentieren um frühere Flags zu löschen  
 
  # Bei Bedarf auskommentieren um frühere Flags zu löschen  
Zeile 29: Zeile 25:
 
  if test $2  
 
  if test $2  
 
  then $2  
 
  then $2  
  fi
+
  fi  
 
+
Es ist ausgelegt für den Aufruf als normaler User aus KDE heraus, für Gnome müsste man natürlich noch das kdesu gegen gnomesu austauschen oder es gegen ein einfaches sudo austauschen und dann in einem Terminal aufrufen oder man lässt das kdesu/gnomesu/su weg und loggt sich in einem Terminal oder auf der Konsole kurz als root ein um es aufzurufen. Ganz ohne rootpasswort geht es nicht da nur root normalerweise diese Kernelflags setzen darf, aber man ja nicht unbedingt als root das Game zocken will.
Es ist ausgelegt für den Aufruf als normaler User aus KDE heraus, für Gnome müsste man natürlich noch das kdesu gegen gnomesu (oder wie hieß das Pendant zu kdesu unter Gnome doch gleich?) austauschen oder es gegen ein einfaches su austauschen und dann in einem Terminal aufrufen oder man lässt das kdesu/gnomesu/su weg und loggt sich in einem Terminal oder auf der Konsole kurz als root ein um es aufzurufen. Ganz ohne rootpasswort geht es nicht da nur root normalerweise diese Kernelflags setzen darf aber man ja nicht unbedingt als root das Game zocken will:-)
 
 
   
 
   
Beispielsaufruf des Scripts:
+
Beispielsaufruf des Scripts:
Code:
+
directsound.sh et.x86 et  
  directsound.sh et.x86 et
+
 
 
+
Ein Script für Teamspeak könnte folgendermaßen aussehen:
  Ich denke mal,mit diesen Tipps dürften die meisten Game+Soundprobleme die hier so angefragt werden erledigt sein und ein Startpunkt für weitere Basteleien gegeben sein.  
+
 
 +
#!/bin/sh
 +
#Soundausgabe für TeamSpeak freigeben
 +
kdesu "echo teamspeak ' 0 0 direct non-block '>/proc/asound/card0/pcm0p/oss"
 +
  #Soundeingabe für TeamSpeak freigeben
 +
kdesu "echo teamspeak ' 0 0 direct'>/proc/asound/card0/pcm0c/oss"
 +
 
 +
Ich denke mal, mit diesen Tipps dürften die meisten Game+Soundprobleme die hier so angefragt werden erledigt sein und ein Startpunkt für weitere Basteleien gegeben sein.  
 
   
 
   
Ursprüngliches HowTo von TomcatMJ:
+
Ursprüngliches HowTo von TomcatMJ:
http://www.linux-club.de/ftopic40219.html
+
http://www.linux-club.de/ftopic40219.html
 +
----
 +
[[TeamSpeak und Gamesound | Scriptzusammenfassung und Beispielscriptableitung]]<br />
 +
[[Multimedia | Zurück zu Multimedia]]<br />
 +
[[Kategorie:Multimedia]]

Aktuelle Version vom 21. März 2007, 13:51 Uhr

Da hier öfters mal die Frage aufkommt wieso einige Games trotz funktionieren von XMMS und Co. keinen Sound liefern, liefere ich mal ein paar Hints dazu:


1.) Mal probieren, ob der Sound im Game ohne den Arts-Soundserver oder ESD denn läuft. Dazu bei Nutzung von Arts den artsd beenden mit Hilfe von

killall artsd

bzw. im Fall von esd

killall esd    

2.) Wenn ein Game mit dem Loki-Installer installiert wurde, kann man auch probieren im jeweiligen Startscript, welches im Normalfall, sofern es vom User root installiert wurde und unter /usr/local/bin liegt bzw. dort verknüpft ist, direkt(!) vor dem Aufruf des eigentlichen Binaries des Games

artsdsp -m 

einzufügen. Im Falle von beispielsweise ReturnToCastleWolfenstein:EnemyTerritories wäre das direkt vor " et.x86" und direkt nach dem vor dem et.x86 stehenden "exec ".

3.) Wenn man nun z.B. TeamSpeak zusätzlich nutzen will reicht diese Maßnahme meist nicht wirklich aus. Dazu sollte man dem Game eben den direkten Zugriff auf die Soundausgabe ermöglichen, was dann an allen Soundservern im Hintergrund (also egal ob Arts oder ESD) vorbeigeht und wodurch TeamSpeak eben auch der Meinung ist das Sounddevice wäre frei und weswegen dann eben beide, das Game und TeamSpeak, das Sounddevice zeitgleich nutzen können.

Dazu hab ich mir vor einiger Zeit folgendes Script namens directsound.sh geschrieben:

#!/bin/sh 
# als ersten Parameter den Namen des Game-binaries übergeben und als ggf. zweiten den Namen des Gamestartscripts 
# Bei Bedarf auskommentieren um frühere Flags zu löschen 
#echo "erase">/proc/asound/card0/pcm0p/oss 
# 
#Soundausgabe auf dem ersten Sounddevice erlauben,partial-frag für Quake3 
kdesu "echo $1' 0 0 direct non-block partial-frag'>/proc/asound/card0/pcm0p/oss" 
#Soundeingabe auf dem ersten Sounddevice verbieten(z.B. für Teamspeak den Soundinput freihalten) 
kdesu "echo $1' 0 0 disabled'>/proc/asound/card0/pcm0c/oss" 
if test $2 
then $2 
fi   

Es ist ausgelegt für den Aufruf als normaler User aus KDE heraus, für Gnome müsste man natürlich noch das kdesu gegen gnomesu austauschen oder es gegen ein einfaches sudo austauschen und dann in einem Terminal aufrufen oder man lässt das kdesu/gnomesu/su weg und loggt sich in einem Terminal oder auf der Konsole kurz als root ein um es aufzurufen. Ganz ohne rootpasswort geht es nicht da nur root normalerweise diese Kernelflags setzen darf, aber man ja nicht unbedingt als root das Game zocken will.

Beispielsaufruf des Scripts:

directsound.sh et.x86 et   

Ein Script für Teamspeak könnte folgendermaßen aussehen:

#!/bin/sh 
#Soundausgabe für TeamSpeak freigeben 
kdesu "echo teamspeak ' 0 0 direct non-block '>/proc/asound/card0/pcm0p/oss" 
#Soundeingabe für TeamSpeak freigeben 
kdesu "echo teamspeak ' 0 0 direct'>/proc/asound/card0/pcm0c/oss" 

Ich denke mal, mit diesen Tipps dürften die meisten Game+Soundprobleme die hier so angefragt werden erledigt sein und ein Startpunkt für weitere Basteleien gegeben sein.

Ursprüngliches HowTo von TomcatMJ:
http://www.linux-club.de/ftopic40219.html

Scriptzusammenfassung und Beispielscriptableitung
Zurück zu Multimedia