我安装了 ubuntu,默认安装了 pulseaudio。当 pulseaudio 运行时,它可以工作: aplay -D hw:2,7 /usr/share/xbmc/sounds/Bursting\ Bubbles/nav.wav
但是当没有 pulseaudio 守护进程运行时,它不会。该命令没有给出错误,但我听不到声音。
hw:2,7 是 Nvidia hdmi 设备。
为什么是这样?我想不通。
我安装了 ubuntu,默认安装了 pulseaudio。当 pulseaudio 运行时,它可以工作: aplay -D hw:2,7 /usr/share/xbmc/sounds/Bursting\ Bubbles/nav.wav
但是当没有 pulseaudio 守护进程运行时,它不会。该命令没有给出错误,但我听不到声音。
hw:2,7 是 Nvidia hdmi 设备。
为什么是这样?我想不通。
阅读此链接。
它指出 alsa (aplay) 默认配置为将其输出发送到 pulseaudio (这是您的声音服务器)。
当您的声音服务器未运行时,您将无法听到您观察到的声音。
另请参阅“PulseAudio Removal”部分以将其与 alsa 分离。
我希望这有帮助。
使用-D pulse
应该像这样的伎俩:
aplay -D pulse /usr/share/xbmc/sounds/Bursting\ Bubbles/nav.wav
这样 aplay 应该使用你应该能够找到的pulseaudio设备aplay -L
我有同样的问题; 我在 Ubuntu 11.04 Natty 上。我pulseaudio
禁用了启动(例如10.10 - 如何用 alsa 替换 pulseaudio? - 询问 Ubuntu或PulseAudio - 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
了 device ,它应该直接通过 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)
...而且我什至会看到设备设置-和缓冲区位置正在更改-仍然没有声音?甚至alsamixer
显示所有控件设置为最大值!
好吧,只是偶然,我首先启用了pulseaudio
:
pulseaudio --start
...在启动完成一分钟后,然后启动系统/首选项/声音,或者在这里:
gnome-volume-control
...我意识到,在“输出音量”栏旁边,有一个“静音”复选框 - 它已被选中!所以我取消选中它,声音测试开始工作;关闭gnome-volume-control
然后pulseaudio
再次关闭:
pulseaudio --kill
现在,我无法再开始gnome-volume-control
了(不管10.10 中的提示如何 - 如何在没有脉冲音频的情况下调整音量? - 问 Ubuntu - 显然早期版本允许通过“设备”下拉列表选择后端:old.png,但较新的版本不要t: new.png;因此,如果没有pulseaudio
,它们将始终以“等待声音系统响应”而失败)。
但是,现在当我运行aplay
命令时 - 它会播放(按预期播放)!
这个静音显然与/desktop/gnome/sound/
路径下的一个键有关gconf-editor
(参见gnome - 如何从命令行禁用警报音量? - 询问 Ubuntu),但我不知道是哪一个;我只是注意到此刻,enable_esd
和event_sounds
都input_feedback_sounds
为我检查 - 这显然使aplay
命令正常工作,即使没有pulseaudio
.
希望这对某人有帮助,
干杯!