我正在尝试创建一个适用于扬声器和麦克风的 Docker 镜像。
我已经使用 Ubuntu 作为主机使用它:
docker run -it --device /dev/snd:/dev/snd <docker_container>
我还希望能够在 windows 和 mac 主机上使用 Docker 镜像,但找不到/dev/snd 的等价物来使用主机的扬声器/麦克风。
感谢任何帮助
最佳答案
我能够使用 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 中可能会阻止录制。
关于docker - 如何使用 Windows 或 mac 主机获取 Docker 音频和输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52890474/