USB卡作为我的默认音频设备


32

我购买了一个小型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:

options snd-usb-audio index=0

重新启动,仍然没有设置默认值。我什至评论了这一行,没有运气。

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

编辑

 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.
 .

然后:

cat /proc/asound/modules

显示:

 0 snd_bcm2835
 1 snd_usb_audio

问题...您是否偶然安装了pulseaudio?跑dpkg -s pulseaudio出去找出答案,dpkg-query: package 'pulseaudio' is not installed and no information is available如果不是,它会说类似的话。您可以运行该命令并发布输出吗?
RPiAwesomeness

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

@RPiAwesomeness-更新了所请求的信息。
PhillyNJ 2014年

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

2
好极了!:D很高兴为您提供了帮助,我们再也不必卸载pulseaudio!互联网的
欢呼声

Answers:


28

事实证明,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

本质上,这样做是在启用snd_bcm2835USB声音模块(snd-usb-audio)的同时强制禁用默认声音模块()。

我认为以前只添加options snd-usb-audio index=0就发生了什么,就是snd-usb-audio模块和snd_bcm2835冲突了,两者都启用了。


没问题。再次,总是很乐意提供帮助:D
RPiAwesomeness 2014年

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

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

14

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

现在,只需使用此命令列出您在alsa上检测到的声卡,并记下您首选设备的卡号。

aplay -l

然后在处创建/编辑alsa配置文件~/.asoundrc,或在处创建/编辑系统范围的文件/etc/asound.conf,并粘贴以下行:

pcm.!default {
    type hw
    card 0
}

ctl.!default {
    type hw           
    card 0
}

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

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

资源:


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

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

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

2
这对我不起作用,我改为通过在asound.conf中将其编写为“ pcm。!default {类型,从属插件{pcm“ hw:1,0”}}} ctl。!default {类型,硬件卡1} “来自:linuxcircle.com/2013/05/08/…–
Moulde
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.