docker中使用声卡设备

参考:Container sound: ALSA or Pulseaudio

docker run ... \
	--device /dev/snd \
	... 

docker与宿主机可能会抢占声卡设备,导致无法同时发声,需要进行以下处理:

Hostip="$(ip -4 -o a | awk '{print $4}' | cut -d/ -f1 | grep -v 127.0.0.1 | head -n1)"
pactl unload-module module-native-protocol-tcp

docker run ... \
	--device /dev/snd \
    --env PULSE_SERVER=tcp:$Hostip:7777 \
    ...

Containerip="$(docker inspect --format '{{ .NetworkSettings.IPAddress }}' ${DEV_CONTAINER})"
pactl load-module module-native-protocol-tcp  port=7777 auth-ip-acl=$Containerip

添加了一个pulse_audio的tcp服务,端口7777

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐