如何使用Windows或Mac主机获取Docker音频和输入?

时间:2018-10-19 10:22:55

标签: docker audio alsa

我正在尝试创建可与扬声器和麦克风配合使用的Docker映像。

我已经通过以下方式将它与Ubuntu配合使用:

docker run -it --device /dev/snd:/dev/snd <docker_container>

我也希望能够在Windows和Mac主机上使用Docker映像,但是找不到与/ dev / snd等效的主机来使用主机的扬声器/麦克风。

任何帮助表示赞赏

1 个答案:

答案 0 :(得分:0)

我能够使用Pulseaudio.exe在Windows上播放。

1]下载适用于Windows的Pulseaudio:https://www.freedesktop.org/wiki/Software/PulseAudio/Ports/Windows/Support/

2]解压缩并更改配置文件。

2a]将以下行添加到$ INSTALL_DIR / etc / pulse / default.pa:

load-module module-native-protocol-tcp listen=0.0.0.0 auth-anonymous=1 

这是一个不安全的设置:有些基于IP的设置更安全,但是我认为有一些Docker手段可以利用它们。在进程运行时,您网络上的任何人都可以将声音推送到该端口;对于大多数用户来说,这种风险是可以接受的。

2b]将$ INSTALL_DIR / etc / pulse // etc / pulse / daemon.conf行更改为:     出口空闲时间= -1

这将使守护程序在最后一个客户端断开连接后保持打开状态。

3)运行pulseaudio.exe。您可以将其运行为

start "" /B "pulseaudio.exe"

将其作为背景,但杀死它的技巧不只是简单的执行。

4)在容器的外壳中:

export PULSE_SERVER=tcp:127.0.0.1

我从(https://token2shell.com/howto/x410/enabling-sound-in-wsl-ubuntu-let-it-sing/)获得的一篇文章建议在Windows 10中可能会阻止录制。