запись и воспроизведение в звуковой карте Audio Injector

запись и воспроизведение в звуковой карте Audio Injector

Я хочу создать fifo с arecord и aplay в raspberry pi3. Когда я отправляю музыкальный сигнал с аудиоинжектора на одном конце, он отображается правильно, но отключает музыку на другом конце. Я использую "arecord -f S16_LE -r 44100 -V stereo -c1 -D plughw:2 | aplay -D plughw:2"

Подскажите, пожалуйста, как решить эту проблему и как остановить эту команду без использования ctrl+c ???

решение1

Не уверен, что вы пытаетесь сделать, в частности я не понимаю "отключить музыку на другом конце", но

1) Пересылка аудиопотоков в Pulseaudio (или jack) намного проще, чем в ALSA.

2) При использовании arecordв канале не используйте формат WAV, поскольку заголовок WAV имеет запись длины, которая не может быть заполнена в канале. Либо используйте raw ( -t raw) и укажите правильные параметры в aplay, либо используйте аудиоформат SUN ( -t au).

3) Канал arecord-aplay будет работать, пока вы его не остановите с помощью ctrl-c, или пока один или оба процесса не будут завершены (с помощью kill). Другого способа сделать это нет.

решение2

Чтобы остановить команду, добавьте переменную длительности (-d) в секундах к записи следующим образом:

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

Эта команда остановит запись через -d2 или 2 секунды.

Если вы используете команду alsamixer, вы можете изменить настройки микшера. Это позволит вам выбрать вход (микрофон или линия), а также включить выход hifi (чтобы слышать звук), а также вы можете включить режим обхода, который будет направлять аудиовход напрямую на выход через аналоговую систему, а не через ЦП. В режиме обхода вы все еще можете использовать arecord для захвата сигнала.

Связанный контент