需要重试打开alsa才能正常工作

问题描述:

我可以在没有问题的情况下运行aplay,并播放wav测试文件。需要重试打开alsa才能正常工作

在我的应用程序,以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。

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

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