J'aimerais que mon RasPi envoie de l'audio à mon port de sortie audio intégré, ainsi qu'à ma carte de sortie numérique (un I2S Hifiberry Digi). Cela devrait être possible avec ALSA. J'ai les pilotes chargés et je peux envoyer aux deux périphériques audio individuellement, mais les combiner ne fonctionne tout simplement pas. Il existe plusieurs articles expliquant comment procéder, mais je ne parviens pas à faire fonctionner ma configuration.
L'erreur de 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
Sortie de "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
Sortie de "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`
Contenu de /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
la source
la source
Réponses:
C'est un peu hacky mais avez-vous pensé à la
tee
commande? En savoir plus sur StackExchange sur la re-direction du tee et voir l' artique de Wiki pour plus d'exemples. Je pense que si vous avez une commande qui génère le nom de fichier ou le lien vers le contenu multimédia,ls
peut-être, et que vous utiliseztee
pour appeler des commandes vers votre lecteur multimédia préféré. Voici comment j'écrirais le problème ...Remarques:
... après avoir testé et tel, je serais alors susceptible de lancer
if [ ${#} < 4]; then echo "error"; fi
près du sommet; éditer le4
pour combien d'arguments j'ai ressenti doit être là. En cours d'exécution tel quel, vousbash scripted_dule_player 'aplay <common_options>' '<options_output1>' '<options_output2>' '</full/file/path/to/mediafile>'
serez sûr de modifier pour votre système les options et les chemins de fichiers que vous souhaitez exécuter; le truc entre<>
.Les problèmes d'utilisation
tee
sont qu'il n'est pas très transférable entre les versions de Linux et cela peut entraîner des problèmes avec l'audio qui ne joue pas en synchronisation entre les sorties. Au lieu de cela, je suggérerais d'utiliseromxplayer -o both
pour la sortie du son vers deux appareils séparés, mais comme cela n'a été testé que sur un RPi qui a une sortie HDMI et audio branchée, pas tout à fait la configuration utilisée par l'OP et l'OP a demandé quelque chosealsa
.Il y a aussi un joli blog sur le sujet des configurations multi-utilisateurs de la carte son multi alsa que vous voudrez peut-être parcourir; vous avez peut-être une erreur dans la vôtre qui fera de mon code ci-dessus un point discutable; il suffit de noter que le guide était orienté vers Linux à saveur Slaker et non Raspbian.
la source