%20%E4%B8%8A%E7%9A%84%E9%A0%90%E8%A8%AD%E8%A3%9D%E7%BD%AE%E9%8C%84%E8%A3%BD%E9%9F%B3%E8%A8%8A.png)
我可以使用以下命令錄製音訊:
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"
}
}