【发布时间】:2011-05-27 08:49:44
【问题描述】:
我有一个执行以下操作的程序:
- 使用 snd_pcm_open() 函数打开默认 PCM
- 发送样本以播放声音
- 使用 snd_pcm_close() 函数关闭 PCM
程序会定期播放它收到的任何声音请求,但偶尔打开会失败并返回“设备或资源忙”错误。这通常发生在有大量声音文件时。但是,关闭电话总是成功的。我假设如果关闭成功,那么 PCM 将立即可供其他任何人使用。我还应该补充一点,系统上没有其他使用声音的东西。
ALSA 是否有可能在关闭后仍需要清理一些资源? PCM接口不是设计成经常打开和关闭的吗? Internet 上的大多数示例在启动时打开 PCM 流并在关闭时将其关闭。
【问题讨论】: