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

标签 docker audio alsa

我正在尝试创建一个适用于扬声器和麦克风的 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/

相关文章:

android - 为什么连接到 mediaBrowser 时不调用 connectionCallback.onConnected()?

c - ioctl 使用全局数组返回错误地址

c - 在 Linux 中用 C 语言获取主音量

c++ - 管理 MP3 的播放速度和位置

python - 模块未找到错误: No module named 'pymongo' with Docker and Airflow

docker - Dockerfile使用脚本设置环境变量

docker - Docker无法创建机器-机器创建过程中驱动程序错误

shell - 有没有办法在 docker 构建过程中添加提示?

c# - 当另一个人开始演奏时声音消除

iphone - iOS:在后台同时运行应用程序音频和电话音乐音频