【发布时间】:2011-12-31 09:45:57
【问题描述】:
我想使用 ALSA 将一些音频数据播放到 PCM 设备。例如,我下载了this sample example 并在我的电脑上运行它。当当前没有其他进程正在使用声卡时,它可以正常工作。但是当其他进程使用音频设备(即媒体播放器播放歌曲)并显示以下错误时,它不会播放任何内容 -
Playback open error: Device or resource busy
查看此示例的源代码,我可以说第 882 行的 snd_pcm_open 函数引发了此错误。它发现设备很忙,因为另一个进程正在使用它。
我也尝试了相反的方法 - 首先启动示例然后尝试启动歌曲。在这种情况下,媒体播放器保持空闲,在进度条旁边显示“空闲”(我使用的是 Banshee)。我假设snd_pcm_open 获得了设备资源的独占权,因此没有其他进程可以使用它。
但我不希望那样。我想在不需要任何专有权的情况下向音频设备播放声音,以便 PC 中的其他进程可以共享同一设备以输出音频数据。
我该怎么做?如何打开 PCM 设备,以便其他进程也可以共享同一设备?
【问题讨论】: