使用 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 wiki 頁面PCM 插件(請參閱“插件:asym”部分)和聲音來源

相關內容