需要重试打开alsa才能工作

时间:2017-10-13 10:51:48

标签: alsa pulseaudio libalsa

我可以毫无问题地运行播放,并播放一个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中检查了代码,并且我使用了相同的设备名称('default')和相同的模式。代码实际上是相同的,只是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。

1 个答案:

答案 0 :(得分:0)

安装包libasound2-plugins:i386解决了这个问题。

但是,如果有人知道为什么第二次打电话给ALSA工作,我会将你的答案标记为正确的答案,因为现在我不知道。