TL;DR:
Ich habe 2 Soundkarten und nur ALSA (kein PulseAudio). Eine von den beiden Karten wird in der /etc/asound.conf als Default festgelegt.
Ich versuche ein Shell Script zu schreiben, das zuerst temporär die andere Soundkarte als Standard festlegt, bevor ein Programm gestartet wird. Wenn das Programm beendet wird, soll die Änderung wieder rückgängig gemacht werden.
Lange Beschreibung:
Ich habe ein Problem mit 2 Soundkarten auf meinem Raspberry Pi. Und zwar hat der die Standard-Soundausgabe (unter Anderem über HDMI) und ein Hifiberry "Shield" mit einem SPDIF-Ausgang. Das sieht dann so aus:
Code: Alles auswählen
$ aplay -l
**** Liste der Hardware-Geräte (PLAYBACK) ****
Karte 0: ALSA [bcm2835 ALSA], Gerät 0: bcm2835 ALSA [bcm2835 ALSA]
Sub-Geräte: 8/8
Sub-Gerät #0: subdevice #0
Sub-Gerät #1: subdevice #1
Sub-Gerät #2: subdevice #2
Sub-Gerät #3: subdevice #3
Sub-Gerät #4: subdevice #4
Sub-Gerät #5: subdevice #5
Sub-Gerät #6: subdevice #6
Sub-Gerät #7: subdevice #7
Karte 0: ALSA [bcm2835 ALSA], Gerät 1: bcm2835 ALSA [bcm2835 IEC958/HDMI]
Sub-Geräte: 1/1
Sub-Gerät #0: subdevice #0
Karte 1: sndrpihifiberry [snd_rpi_hifiberry_digi], Gerät 0: HifiBerry Digi HiFi wm8804-spdif-0 []
Sub-Geräte: 1/1
Sub-Gerät #0: subdevice #0
Code: Alles auswählen
$ cat /etc/asound.conf
defaults.ctl.card 1
defaults.pcm.card 1
defaults.pcm.device 1
Deswegen müsste ich nun ein Shell-Script schreiben, dass zunächst die ALSA-Default-Soundkarte von Hifiberry (Soundkarte 1) auf HDMI (Soundkarte 0) umstellt und danach RetroPie startet. Ich nehme an, dass amixer das mit den richtigen Paramtern kann. Könnt ihr mir dabei helfen?
Das Script müsste irgendwie so aussehen:
Code: Alles auswählen
#!/bin/bash
# change sound card to HDMI
# amixer -c # <-- ... eventuell hilft das mit den geeigneten Paramtern
# start retropie
emulationstation;