如何配置不同的 ALSA 默认值以通过一台设备进行捕获并通过另一台设备进行播放?

问题描述 投票:0回答:1

我正在寻求一些在 Raspberry Pi 上配置音频的帮助,因为到目前为止我所有的谷歌搜索努力都还不够!

我的设置:

  • Raspberry PI 3(运行 Debian Jessie)
  • 我用来捕捉音频的 USB 网络摄像头(罗技)
  • 3.5毫米音频插孔中的外部扬声器用于播放

到目前为止,我已成功将 ALSA 配置为默认情况下通过 USB 网络摄像头进行捕获并通过 3.5 毫米插孔进行播放。例如,以下工作正常:

# Capture from Webcam
arecord test.wav

# Playback through 3.5mm jack
aplay test.wav

默认情况下,它会捕获 8 位、8KHz、单声道音频。但是,我希望默认捕获过程使用 16 位、16KHz、单声道设置,这就是我陷入困境的地方。

这是我的工作

~/.asoundrc
文件:

pcm.!default {

        type asym

        playback.pcm {
                type hw
                card 1
                device 0
        }

        capture.pcm {
                type plug
                slave {
                        pcm {
                                type hw
                                card 0
                                device 0
                        }
                }
        }
}

还有我的

/etc/modprobe.d/alsa-base.conf

options snd_usb_audio index=0
options snd_bcm2835 index=1

options snd slots=snd-usb-audio,snd-bcm2835

以及

cat /etc/asound/cards
的输出:

 0 [U0x46d0x825    ]: USB-Audio - USB Device 0x46d:0x825
                      USB Device 0x46d:0x825 at usb-3f980000.usb-1.4, high speed
 1 [ALSA           ]: bcm2835 - bcm2835 ALSA
                      bcm2835 ALSA

我按照各种指南设置

format
rate
channels
属性,但没有成功。例如,这不起作用:

pcm.!default {

        type asym

        playback.pcm {
                type hw
                card 1
                device 0
        }

        capture.pcm {
                type plug
                slave {
                        pcm {
                                type hw
                                card 0
                                device 0
                        }
                        format S16_LE
                        rate 16000
                        channels 1
                }
        }
}

(我还尝试过将这些属性移动到

pcm
块内,这是许多绝望的尝试之一!)

事实上,我根本没有 Linux 上的音频经验,我完全迷失了方向,非常感谢任何指导!

linux audio raspbian alsa raspberry-pi3
1个回答
0
投票

aplay
使用文件实际具有的任何示例格式,但是
arecord
创建一个新文件,因此如果您不想要愚蠢的默认值,则必须指定示例格式:

arecord -f S16_LE -r 16000 -c 1 test.wav
© www.soinside.com 2019 - 2024. All rights reserved.