Quiero crear un quince con arecord y aplay en raspberry pi3. Cuando envío una señal de música desde el inyector de audio en un extremo, se muestra correctamente pero desactivo la música en el otro extremo. Estoy usando "arecord -f S16_LE -r 44100 -V estéreo -c1 -D plughw:2 | aplay -D plughw:2"
¿Por favor dígame cómo solucionarlo y cómo detener ese comando sin usar Ctrl+c?
Respuesta1
No estoy seguro de lo que estás intentando hacer, en particular no entiendo "desactivar la música en el otro extremo", pero
1) Reenviar transmisiones de audio es mucho más fácil en Pulseaudio (o jack) que en ALSA.
2) Cuando lo use arecord
en una tubería, no use el formato WAV, porque el encabezado WAV tiene una entrada de longitud que no se puede completar en una tubería. Utilice raw ( -t raw
) y especifique los parámetros correctos en aplay
, o utilice el formato de audio SUN ( -t au
).
3) La tubería arecord-aplay se ejecutará hasta que la detenga con ctrl-c o hasta que uno o ambos procesos finalicen (usando kill
). No hay otra manera de hacerlo.
Respuesta2
Para detener el comando que tiene, agregue una variable de duración (-d) en segundos para registrar así:
arecord -f S16_LE -r 44100 -V stereo -c1 -d2 -D plughw:2 | aplay -D plughw:2
Este comando detendrá la grabación después de -d2 o 2 segundos.
Si usa el comando alsamixer, puede modificar la configuración del mezclador. Esto le permitirá seleccionar la entrada (micrófono o línea), así como habilitar la salida de alta fidelidad (para escuchar el sonido) y también puede habilitar el modo bypass que enrutará la entrada de audio directamente a la salida a través del sistema analógico, en lugar de la CPU. En el modo bypass aún puedes usar arecord para capturar la señal.