Hallo auch.
Ich habe folgendes Problem:
Ich möchte während der Video-Wiedergabe in Firefox (Youtube, Disney+) das Audiogerät wechseln können ohne Firefox danach neu starten zu müssen.
Die Geräte wären folgen: HDMI->Beamer, Bluetooth->Sony WH 1000MX3 und Bluetooth->JBL Charge 3. Mit pulseaudio und pavcontrol hat das überhaupt nicht funktioniert. Die Bluetooth-Verbindung kam nicht zu stande oder war Störanfällig, Firefox musste trotz allem neu gestartet werden etc. Deswegen habe ich puseaudio raus geschmissen und mache das derzeit mit alsa. Dazu habe ich mir ein Skript angelegt, welches die .asoundrc jeweils austauscht und ggf. die Bluetoothverbindung aufbaut. Mit zenity habe ich einen Auswahl-Dialog erstellt. Das funktioniert so weit auch wunderbar und war jetzt nur dafür gut die Ausgangssituation zu beschreiben. Jetzt hätte ich gerne das ich während der Wiedergabe das Gerät wechseln kann ohne das Programm neu starten zu müssen. Dazu habe ich das snd-aloop-Modul geladen. Nach einigem probieren sieht meine .asoundrc derzeit so aus:
pcm.!default{
type plug
slave.pcm "aduplex"
}
pcm.aduplex {
type asym
playback.pcm "amix"
capture.pcm "asnoop"
}
pcm.capture{
type plug
slave.pcm "asnoop"
}
pcm.amix{
type dmix
ipc_key 209346
slave.pcm "hw:Loopback,0,0"
}
pcm.asnoop {
type dsnoop
ipc_key 219346
slave.pcm "hw:Loopback,0,1"
}
Display More
Um das ganze jetzt auf die Lautsprecher zu bekommen starte ich folgendes:
alsaloop -C capture -P hw:1
Jedoch erhalte ich dann nur folgende Fehlermedung:
QuoteALSA lib pcm_dsnoop.c:638:(snd_pcm_dsnoop_open) unable to open slave
capture capture open error: Device or resource busy
Loopback initialization failure.
Was läuft den da schief? Anscheinend ist das capture-device belegt, ich verstehe nur nicht wovon. Die Audioausgabe funktioniert jedenfalls problemlos mit
aplay -D hw:1 /usr/share/sounds/alsa/Front_Center.wav
Zudem verwende ich ja dsnoop womit meines Wissens ohnehin mehrere Geräte das Mikrofon nutzen können sollten.
Meine Geräte sehen wie folgt aus:
pi@pi4:~ $ aplay -l
**** Liste der Hardware-Geräte (PLAYBACK) ****
Karte 0: Loopback [Loopback], Gerät 0: Loopback PCM [Loopback PCM]
Sub-Geräte: 0/1
Sub-Gerät #0: subdevice #0
Karte 0: Loopback [Loopback], Gerät 1: Loopback PCM [Loopback PCM]
Sub-Geräte: 1/1
Sub-Gerät #0: subdevice #0
Karte 1: ALSA [bcm2835 ALSA], Gerät 0: bcm2835 ALSA [bcm2835 ALSA]
Sub-Geräte: 7/7
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
Karte 1: ALSA [bcm2835 ALSA], Gerät 1: bcm2835 IEC958/HDMI [bcm2835 IEC958/HDMI]
Sub-Geräte: 1/1
Sub-Gerät #0: subdevice #0
Karte 1: ALSA [bcm2835 ALSA], Gerät 2: bcm2835 IEC958/HDMI1 [bcm2835 IEC958/HDMI1]
Sub-Geräte: 1/1
Sub-Gerät #0: subdevice #0
pi@pi4:~ $ arecord -l
**** Liste der Hardware-Geräte (CAPTURE) ****
Karte 0: Loopback [Loopback], Gerät 0: Loopback PCM [Loopback PCM]
Sub-Geräte: 1/1
Sub-Gerät #0: subdevice #0
Karte 0: Loopback [Loopback], Gerät 1: Loopback PCM [Loopback PCM]
Sub-Geräte: 1/1
Sub-Gerät #0: subdevice #0
Display More
Jemand eine Idee?
Edit:
HW ist ein Raspberry Pi 4B mit 4GB
OS ist Raspbian 32 bit