我购买了一个小型USB声卡。我的Pi可以识别该设备:

$ lsusb
Bus 001 Device 004: ID 0d8c:013c C-Media Electronics, Inc. CM108 Audio Controller


如果运行alsamixer并将音频设置为USB PnP Sound Device,则可以通过USB声卡听到音频。要使其永久,我键入:

$ sudo alsactl store


,但是重新启动后,默认设置不再是USB声卡。



,然后我尝试查看播放设备的列表:

$ aplay -l

    **** List of PLAYBACK Hardware Devices ****
  card 0: ALSA [bcm2835 ALSA], device 0: bcm2835 ALSA [bcm2835 ALSA]
  Subdevices: 8/8
  Subdevice #0: subdevice #0
  Subdevice #1: subdevice #1
  Subdevice #2: subdevice #2
  Subdevice #3: subdevice #3
  Subdevice #4: subdevice #4
  Subdevice #5: subdevice #5
  Subdevice #6: subdevice #6
  Subdevice #7: subdevice #7
  card 1: Device [USB PnP Sound Device], device 0: USB Audio [USB Audio]
  Subdevices: 1/1
  Subdevice #0: subdevice #0


我编辑/etc/asound.conf看起来像这样来设置默认值:

$ sudo nano /etc/asound.conf


pcm.!default {
 type hw
 card 1
 device 0
}


reboot,但我的默认设置不是USB声卡。

当我尝试时:

$ aplay /usr/share/sounds/alsa/Front_Center.wav -D sysdefault:CARD=1

/>
我听到USB卡发出声音。

我还尝试了以下操作:

$ sudo nano /etc/modprobe.d/alsa-base.conf


将索引从-2更改为0: br />
重新启动,但仍未设置默认值。我什至没有注释掉行,也没有运气。

那么如何将USB卡设置为默认音频设备?

编辑



显示器:

options snd-usb-audio index=0


然后:

 dpkg -s pulseaudio


显示器:
/>
Package: pulseaudio
Status: install ok installed
Priority: optional
Section: sound
Installed-Size: 4413
Maintainer: Pulseaudio maintenance team <pkg-pulseaudio-devel@lists.alioth.debian.org>
Architecture: armhf
Multi-Arch: foreign
Version: 2.0-6
Depends: libasound2 (>= 1.0.24.1), libc6 (>= 2.13-28), libcap2 (>= 2.10), libdbus-1-3 (>= 1.1.1), libfftw3-3, libgcc1 (>= 1:4.4.0), libice6 (>= 1:1.0.0), libltdl7 (>= 2.4.2), liborc-0.4-0 (>= 1:0.4.16), libpulse0 (= 2.0-6), libsamplerate0 (>= 0.1.7), libsm6, libsndfile1 (>= 1.0.20), libspeexdsp1 (>= 1.2~beta3.2-1), libstdc++6 (>= 4.1.1), libsystemd-daemon0 (>= 31), libsystemd-login0 (>= 31), libtdb1 (>= 1.2.7+git20101214), libudev0 (>= 146), libwebrtc-audio-processing-0, libx11-6, libx11-xcb1, libxcb1, libxtst6, adduser, lsb-base (>= 3.2-13), consolekit, udev (>= 143), libasound2-plugins
Recommends: pulseaudio-module-x11, gstreamer0.10-pulseaudio, rtkit
Suggests: pulseaudio-utils, pavumeter, pavucontrol, paman, paprefs
Breaks: libltdl3 (<< 1.5.24-1)
Conffiles:
 /etc/init.d/pulseaudio 8580c855e4547e8a3c84dca96d9bbd7e
 /etc/default/pulseaudio ee26e4427d72cf16a59b1a8ce2712c66
 /etc/xdg/autostart/pulseaudio.desktop 5e19ffbe14d21702be1edd3256c4265d
 /etc/xdg/autostart/pulseaudio-kde.desktop fd20c58d32035e908a0866784e4e3511
 /etc/pulse/system.pa 408f6d6119d7afce522ab1b394709134
 /etc/pulse/default.pa a9ac2a96744beae0913865fafd3d2582
 /etc/pulse/daemon.conf 6c9e4c973cabb406beee3ec81c63fcd7
 /etc/dbus-1/system.d/pulseaudio-system.conf 69d56dc5342bf589a2e199541709a452
Description: PulseAudio sound server
 PulseAudio, previously known as Polypaudio, is a sound server for POSIX and
 WIN32 systems. It is a drop in replacement for the ESD sound server with
 much better latency, mixing/re-sampling quality and overall architecture.
 .


评论

问题...您是否偶然安装了pulseaudio?运行dpkg -s pulseaudio进行查找,它会说类似dpkg-query的内容:软件包'pulseaudio'未安装,如果没有,则无可用信息。您可以运行该命令并发布输出吗?

另外,您可以运行cat / proc / asound / modules并发布输出吗?

@RPiAwesomeness-已更新为要求的信息。

好的,您是否尝试过:options snd-usb-audio index = 0 [PRESS ENTER]选项snd_bcm2835 index = 1?从我所看到的,您只是在更改snd-usb-audio索引,而系统又将其更改回原来的位置,因为它不能在相同的索引处包含两个(usb和bcm2835)?

好极了! :D很高兴为您提供了帮助,我们再也不必卸载pulseaudio!互联网万岁:)

#1 楼

事实证明,OP正在尝试使用

$ sudo nano /etc/modprobe.d/alsa-base.conf

,并通过在文件中添加options snd-usb-audio index=0将索引从-2更改为0,从而沿着正确的路径进行思考。但是,这不起作用。

正确的方法是先添加options snd-usb-audio index=0,然后添加options snd_bcm2835 index=1

本质上,这样做是在启用USB声音模块(snd_bcm2835)的情况下强制禁用默认声音模块(snd-usb-audio)。

我认为以前仅添加options snd-usb-audio index=0就是在发生问题,因为snd-usb-audio模块和snd_bcm2835相互冲突,并且都已启用。

评论


没问题。再次,总是很高兴为您提供帮助:D

–RPiAwesomeness
14年7月10日在16:01

甜!这也为我解决了问题。更改FWIW alsa-base.conf后,我不得不重新启动。

–安德鲁·斯旺(Andrew Swan)
2014年11月13日在10:49

@AndrewSwan不客气!乐意效劳! :)

–RPiAwesomeness
2014年11月13日在17:48

#2 楼

使用Raspbian Jesse,更改默认音频设备比以前要简单。首选设备。

aplay -l


然后在~/.asoundrc处创建/编辑alsa配置文件,或者在/etc/asound.conf处创建/编辑系统范围的文件,并粘贴以下行: />
pcm.!default {
    type hw
    card 0
}

ctl.!default {
    type hw           
    card 0
}


card 0更改为声音设备的卡号。

使用alsamixer仔细检查默认设置是否正确。

来源:



ALSA项目Asoundrc

无法在覆盆子杰西上设置默认输入和输出音频设备
(包含一些不必要的额外步骤)


评论


@Greenonline,回复:昨天的我的“问题”,我真的无法在前一天晚上添加此答案,因为它是受社区保护的,而且我还没有10名代表!感谢您的友好评论,但它有所帮助:)

–半音
16-3-28在4:25



喔好吧。谢谢。我以为这个答案看起来很熟悉... :-)

– Greenonline
16-3-28在6:39

可接受的答案对我不起作用,但这可以解决问题!非常感谢。

– Twiffy
17年6月8日在5:24

这对我不起作用,我改为通过在asound.conf中将其编写为“ pcm。!default {类型,从属插件{pcm“ hw:1,0”}}} ctl。!default {类型,硬件卡1} “来自:linuxcircle.com/2013/05/08/…

–莫尔德
17年9月13日在8:48



你救了我<3

–拉杜·乌拉什(Radu Ursache)
20 Dec 10'在9:59