0

.asoundrc我的主目录中的文件中有以下代码-

pcm.lol
{
    type dmix
    ipc_key 1024
    ipc_key_add_uid true
    slave{
        pcm "hw:0,0"
        period_time 125000
        rate 48000
        format S32_LE
        channels 2
    }
}

当我运行此示例示例时,它工作正常(我将设备名称更改为plug:lol)。我可以听到耳机中播放的声音。当两个或多个进程尝试同时输出音频数据时,就会出现此问题。在这种情况下,后面的进程无法正确输出其音频数据。

例如,我运行了一个正在播放歌曲的媒体播放器,然后我尝试运行该示例。我听不到任何声音,我只能听到媒体播放器中播放的音乐。当我先运行此示例然后运行媒体播放器时,也会发生类似的事情,在这种情况下,我只收听示例的音频输出。

我怎么解决这个问题?我的 pcm 设备配置有什么错误吗?还是我必须在示例代码中提供任何额外的 PCM 配置参数?

另外,如果我能以编程方式创建这个逻辑设备配置,而不是使用这样的配置文件,那就太好了。

4

2 回答 2

0

我认为问题在于您的声音输出仍然默认为 hw0,0,但您希望它默认为 lol,因此您需要按照ALSA 网站上的示例并将以下内容添加到您的 . asoundrc:

pcm.!default {
    type plug
    slave.pcm "lol"
}

不幸的是,我不知道配置.asoundrc 的任何编程方式。

于 2011-11-21T14:43:28.073 回答
0

据我搜索和检查,在 ALSA 中显然没有具体的方法可以做到这一点。我可以在多个进程之间共享内置default设备,但任何其他配置都没有提供此功能。此外,我找不到任何编程方式来配置 ALSA 设备。配置文件似乎是执行此操作的唯一方法。

于 2011-12-08T20:20:29.747 回答