杂文:snd_pcm_open 连不上声音设备,报错connection refused

最后更新于2022年4月11日 18:51:41

今天在调一个golang的代码,出现个奇怪的现象,代码手动跑就没事,挂在circus里面跑就连不上声音设备。这部分的代码是调用的第三方库,查看源码后发现是使用cgo,调用alsa库的snd_pcm_open函数实现的。于是抛开cgo还就那个不谈,写了一个C语言测试代码,发现如下代码挂到circus里面也是同样的情况:

#include 
#include int main(int argc, char **argv)
{snd_pcm_t *handle;int err = snd_pcm_open(&handle, "default", SND_PCM_STREAM_PLAYBACK, 0);printf("%d\n", err);return 0;
}

原因:
声音这个东西比较特殊,在circus无论是使用root还是1000的用户,都不包含对应的组?大概是这么个意思
需要做以下操作:

cat /etc/group | grep pulse #这里可以看到需要的group
id #看是否有对应权限
sudo gpasswd -a ${USER} audio
sudo gpasswd -a ${USER} pulse-access

然后重启电脑。


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部