gravar e reproduzir na placa de som do injetor de áudio

gravar e reproduzir na placa de som do injetor de áudio

Quero criar um fifo com arecord e aplay no raspberry pi3. Quando envio o sinal de música do injetor de áudio em uma extremidade, ele é exibido corretamente, mas desativo a música na outra extremidade. Estou usando "arecord -f S16_LE -r 44100 -V estéreo -c1 -D plughw:2 | aplay -D plughw:2"

Por favor me diga como resolver isso e como parar esse comando sem usar ctrl+c ???

Responder1

Não tenho certeza do que você está tentando fazer, em particular não entendo "desativar a música do outro lado", mas

1) Encaminhar fluxos de áudio é muito mais fácil no Pulseaudio (ou jack) do que no ALSA.

2) Ao usar arecordem um pipe, não use o formato WAV, pois o cabeçalho WAV possui uma entrada de comprimento, que não pode ser preenchida em um pipe. Use raw( -t raw) e especifique os parâmetros corretos em aplay, ou use o formato de áudio SUN ( -t au).

3) O canal arecord-aplay será executado até que você o interrompa com ctrl-c ou até que um ou ambos os processos sejam eliminados (usando kill). Não há outra maneira de fazer isso.

Responder2

Para interromper o comando que você possui, adicione uma variável de duração (-d) em segundos para gravar assim:

arecord -f S16_LE -r 44100 -V stereo -c1 -d2 -D plughw:2 | aplay -D plughw:2

Este comando interromperá a gravação após -d2 ou 2 segundos.

Se você usar o comando alsamixer, poderá alterar as configurações do mixer. Isso permitirá que você selecione a entrada (microfone ou linha), bem como habilite a saída hifi (para ouvir o som) e também você pode habilitar o modo bypass que direcionará a entrada de áudio diretamente para a saída através do sistema analógico, em vez de a CPU. No modo bypass você ainda pode usar um registro para capturar o sinal.

informação relacionada