Запись звука с устройства по умолчанию в Linux (Raspbian) с помощью arecord

Запись звука с устройства по умолчанию в Linux (Raspbian) с помощью arecord

Я могу записать звук с помощью следующей команды:

arecord -D plughw:0 --duration=10 -f cd -vv rec7.wav

И ~/.asoundrcесть это:

pcm.!default {
        type hw
        card 0
}

ctl.!default {
        type hw
        card 1
}

Кроме того, я могу воспроизвести записанный файл с расширением aplay rec7.wav.

Дело в том, что я указал, какое устройство использовать при записи. А для воспроизведения оно прекрасно работает и без этого. Почему?

Я хотел бы записывать так arecord --duration=10 -f cd -vv rec7.wav. Но не могу найти способ сделать plughw:0устройство по умолчанию.

Я пробую это на Raspbian. И я используювнешний USB-микрофон.

решение1

Вероятно, у вас возникают проблемы, поскольку вы используете разные аппаратные устройства для захвата и воспроизведения. В файле конфигурации pcmразделы определяют устройство PCM (воспроизведение и запись), а ctlразделы предназначены для настройки параметров (устройство управления). Поскольку звуковая карта Raspberry Pi не поддерживает захват, pcmустройство по умолчанию, заданное в файле конфигурации, приведет к arecordвозврату с ошибкой. Чтобы обойти это, мы можем задать разные устройства по умолчанию в файле конфигурации. Один из способов использования разных аппаратных устройств для воспроизведения и захвата — использовать плагин asym.

Вот .asoundrcэто должно сработать

pcm.usbmic {
    type hw
    card 1
}

pcm.playback {
    type hw
    card 0
}

pcm.!default {
    type asym
    playback.pcm{
        type plug
        slave.pcm "playback"
    }
    capture.pcm{
        type plug
        slave.pcm "usbmic"
    }
}

Исходная страница ALSA wiki дляPCM-плагины(см. раздел «Плагины: асимметрия») иasoundrc.

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