为什么在pulseaudio运行时aplay工作,否则不行?

时间:2011-08-24 22:40:11

标签: alsa pulseaudio

我安装了一个默认安装了pulseaudio的ubuntu。当pulseaudio运行时,这有效: aplay -D hw:2,7 / usr / share / xbmc / sounds / Bursting \ Bubbles / nav.wav

但是当没有运行pulseaudio守护进程时,它没有。该命令不会出错,但我听不到声音。

hw:2,7是Nvidia hdmi设备。

这是为什么?我无法理解。

3 个答案:

答案 0 :(得分:4)

阅读此link

它声明alsa(aplay)被配置为默认将其输出发送到pulseaudio(这是您的声音服务器)。

当您的声音服务器未运行时,您将无法听到您所观察到的声音。

另请参阅“PulseAudio删除”部分以将其与alsa分离。

我希望这会有所帮助。

答案 1 :(得分:1)

我有完全相同的问题;我在Ubuntu 11.04 Natty上。我已禁用pulseaudio启动功能(例如10.10 - How can I replace pulseaudio with alsa? - Ask UbuntuPulseAudio - ArchWiki):

$ cat /etc/pulse/client.conf | grep -ve '^#\|^$'
; default-sink =
; default-source =
; default-server =
autospawn = no
; daemon-binary = /usr/bin/pulseaudio
; extra-arguments = --log-target=syslog
; cookie-file =
; enable-shm = yes
; shm-size-bytes = 0 # setting this 0 will use the system-default, usually 64 MiB

$ pgrep pulse
$

在这种情况下,我会得到:

$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: Intel [HDA Intel], device 0: ALC269 Analog [ALC269 Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

$ aplay -L
null
    Discard all samples (playback) or generate zero samples (capture)
default:CARD=Intel
    HDA Intel, ALC269 Analog
    Default Audio Device
front:CARD=Intel,DEV=0
    HDA Intel, ALC269 Analog
    Front speakers
...
hw:CARD=Intel,DEV=0
    HDA Intel, ALC269 Analog
    Direct hardware device without any conversions
plughw:CARD=Intel,DEV=0
    HDA Intel, ALC269 Analog
    Hardware device with all software conversions
...

...但是,即使我明确指定了设备hw0:0,它应该直接通过ALSA在设备上播放样本,绕过任何服务器:

aplay -f cd -v -Dhw:0,0 --test-position loop_s16_stereo.wav
...
BUFPOS: avg5507/16508 min0/0 max22016/22016 (22016) (0:0/0)
BUFPOS: avg2754/19261 min0/0 max22016/22016 (22016) (0:0/0)

...我甚至会看到设备设置 - AND缓冲区位置被更改 - 但仍然没有声音?即使alsamixer显示所有控件都设置为最大值!

嗯,偶然的,我首先启用了pulseaudio

pulseaudio --start

...在完成一分钟的启动后,然后启动System / Preferences / Sound,或者在这里:

gnome-volume-control

...我意识到,在“输出音量”栏中,有一个“静音”复选框 - 它已被检查!所以我取消了它,声音测试开始工作;已关闭gnome-volume-control,然后再次关闭pulseaudio

pulseaudio --kill

现在,我再也无法启动gnome-volume-control,无论10.10 - How do I adjust the volume without pulseaudio? - Ask Ubuntu中的提示如何 - 显然早期版本允许选择后端,通过“设备”下拉列表:old.png,但是更新的不是:new.png;所以如果没有pulseaudio,它们将始终以“等待声音系统响应”而失败。

然而,现在我运行aplay命令时 - 播放(按照预期)!

此静音显然与/desktop/gnome/sound/ gconf-editor中的enable_esd路径下的密钥有关(请参阅gnome - How to disable Alert volume from the command line? - Ask Ubuntu),但我无法确定哪一个;我只是注意到,目前event_soundsinput_feedback_soundsaplay都是为我检查的 - 这显然使pulseaudio命令正常工作,即使没有{{1 }}。

希望这有助于某人,
干杯!

答案 2 :(得分:0)

使用-D pulse应该可以达到以下目的:

aplay -D pulse /usr/share/xbmc/sounds/Bursting\ Bubbles/nav.wav

这样,游戏应使用您可以通过aplay -L找到的Pulseaudio设备