使用 arecord 从 Linux(Raspbian)上的默认设备录制音频

使用 arecord 从 Linux(Raspbian)上的默认设备录制音频

我可以使用以下命令录制音频:

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 维基页面PCM 插件(参见‘插件:asym’部分)和声音

相关内容