【发布时间】:2018-03-25 11:44:08
【问题描述】:
我可以毫无问题地运行 aplay,并播放 wav 测试文件。
在我的应用程序中,对 snd_pcm_open 的调用出现以下错误:
ALSA lib conf.c:3357:(snd_config_hooks_call) Cannot open shared library libasound_module_conf_pulse.so
ALSA lib pcm.c:2266:(snd_pcm_open_noupdate) Unknown PCM default
我在 aplay 中检查了代码,我使用的是相同的设备名称(“默认”)和相同的模式。代码实际上是相同的,只是 aplay 只是一个用于测试 ALSA 的文件,而我正在尝试在一个非常大的应用程序中运行 ALSA。
当我意识到只需在短暂睡眠后重试调用,它就可以工作时,它变得更加奇怪了。
如果我尝试 snd_ctl_open 而不是打开设备,则会收到错误提示
ALSA lib conf.c:3357:(snd_config_hooks_call) Cannot open shared library libasound_module_conf_pulse.so
ALSA lib control.c:954:(snd_ctl_open_noupdate) Invalid CTL hw:0
control open (0): No such file or directory
之后我可以打开设备。 好像在一次调用 snd_pcm_open 或 snd_ctl_open 后解决了问题,所以下一次调用它就可以了。
什么会导致这种行为?我不想调用 snd_pcm_open 两次。有问题是有症状的。
我正在运行 ubuntu。
【问题讨论】:
标签: alsa pulseaudio libalsa