Ich möchte, dass mein RasPi Audio an meinen integrierten Audioausgang und auch an meine Digitalausgangskarte (ein I2S Hifiberry Digi) sendet. Dies sollte mit ALSA möglich sein. Ich habe die Treiber geladen und kann sie einzeln an beide Audiogeräte senden, aber das Kombinieren funktioniert einfach nicht. Es gibt mehrere Beiträge, in denen erklärt wird, wie das geht, aber ich kann meine Konfiguration nicht zum Laufen bringen.
Der Fehler von aplay:
Playing WAVE 'sin1000_48khz.wav' : Signed 16 bit Little Endian, Rate 48000 Hz, Stereo
ALSA lib pcm_params.c:2162:(snd1_pcm_hw_refine_slave) Slave PCM not usable
aplay: set_params:1059: Broken configuration for this PCM: no configurations available
Ausgabe von "aplay -l"
**** List of PLAYBACK Hardware Devices ****
card 0: sndrpihifiberry [snd_rpi_hifiberry_digi], device 0: HifiBerry Digi HiFi wm8804-spdif-0 []
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: ALSA [bcm2835 ALSA], device 0: bcm2835 ALSA [bcm2835 ALSA]
Subdevices: 8/8
Subdevice #0: subdevice #0
Subdevice #1: subdevice #1
Subdevice #2: subdevice #2
Subdevice #3: subdevice #3
Subdevice #4: subdevice #4
Subdevice #5: subdevice #5
Subdevice #6: subdevice #6
Subdevice #7: subdevice #7
card 1: ALSA [bcm2835 ALSA], device 1: bcm2835 ALSA [bcm2835 IEC958/HDMI]
Subdevices: 1/1
Subdevice #0: subdevice #0
Ausgabe von "aplay -L"
null
Discard all samples (playback) or generate zero samples (capture)
sysdefault:CARD=sndrpihifiberry
snd_rpi_hifiberry_digi,
Default Audio Device
sysdefault:CARD=ALSA
bcm2835 ALSA, bcm2835 ALSA
Default Audio Device`
Inhalt von /etc/asound.conf
pcm.both {
type route
slave.pcm {
type multi
slaves.a.pcm "hw:0,0"
slaves.b.pcm "hw:1,0"
slaves.a.channels 2
slaves.b.channels 2
bindings.0.slave a
bindings.0.channel 0
bindings.1.slave a
bindings.1.channel 1
bindings.2.slave b
bindings.2.channel 0
bindings.3.slave b
bindings.3.channel 1
}
ttable.0.0 1
ttable.1.1 1
ttable.0.2 1
ttable.1.3 1
}
ctl.both {
type hw
card sndrpihifiberry
device 0
}
pcm.hifiberry {
type hw
card sndrpihifiberry
device 0
}
ctl.hifiberry {
type hw
card sndrpihifiberry
device 0
}
pcm.audioout {
type hw
card ALSA
device 0
}
ctl.audioout {
type hw
card ALSA
device 0
}
pcm.!default {
type plug
slave {
pcm both
}
}
#pcm.!default {
# type hw
# card sndrpihifiberry
# device 0
#}
ctl.!default {
type hw
card sndrpihifiberry
device 0
}
audio
audio-playback
Christi
quelle
quelle
Antworten:
Es ist ein bisschen hacky, aber haben Sie den
tee
Befehl in Betracht gezogen ? Lesen Sie mehr über StackExchange über die Umleitung von Abschlägen und sehen Sie sich Wikis Artikel für weitere Beispiele an. Ich denke, wenn Sie einen Befehl haben, der den Dateinamen oder den Link zu Medieninhalten ausgibtls
, undtee
damit Befehle an Ihren bevorzugten Media Player aufrufen. Hier ist, wie ich das Problem umgehen würde ...Anmerkungen:
... nach dem Testen und so würde ich dann wahrscheinlich in der
if [ ${#} < 4]; then echo "error"; fi
Nähe der Spitze werfen ; Das Bearbeiten der4
für wie viele Argumente ich dachte, muss da sein. Wennbash scripted_dule_player 'aplay <common_options>' '<options_output1>' '<options_output2>' '</full/file/path/to/mediafile>'
Sie es so ausführen, wie es ist, müssen Sie die Optionen und Dateipfade, die Sie ausführen möchten, für Ihr System ändern. das Zeug dazwischen<>
.Probleme bei der Verwendung
tee
sind, dass es zwischen Linux-Varianten nicht sehr portabel ist und Probleme mit Audio verursachen kann, das nicht synchron zwischen den Ausgängen abgespielt wird. Stattdessen würde ich vorschlagen,omxplayer -o both
für die Ausgabe von Ton an zwei separate Geräte zu verwenden. Da dies jedoch nur auf einem RPi getestet wurde, an das HDMI- und Audioausgang angeschlossen ist, wurde nicht ganz das vom OP und OP verwendete Setup angefordertalsa
.Es gibt auch einen schönen Blog zum Thema Alsa Multi-Soundkarten-Multi-User-Konfigurationen, die Sie vielleicht durchsehen möchten. Vielleicht haben Sie einen Fehler in Ihrem, der meinen obigen Codeblock zu einem strittigen Punkt macht. Beachten Sie nur, dass die Anleitung dort auf Linux mit Slaker-Geschmack und nicht auf Raspbian ausgerichtet war.
quelle