我正在使用 ROS 运行大量 docker 容器,用于控制机器人。其中一个容器必须通过 sound_play
包播放一些音频文件。但是它返回错误
Cannot connect to server socket err = No such file or directory
Cannot connect to server request channel
jack server is not running or cannot be started
我能够从容器内部aplay
音频(.wav)文件,我的声卡绝对可以被识别,而且我还尝试在特权模式下运行容器。我还尝试在容器中单独安装 jackd
并启动 jack 服务器,但收到错误
Cannot lock down 82274202 byte memory area (Cannot allocate memory).
Bus error (core dumped)
我对这个问题的理解是否正确?如果是这样,我怎样才能让 jack 服务器在容器内启动?
最佳答案
我通过安装jackd1
而不是jackd2
解决了这个问题,因为显然,jackd2需要实时优先级,而我无法将其提供给docker容器。 jackd1
不过成功了。
我的 Dockerfile:
FROM ubuntu:14.04
RUN apt-get update && apt-get install -y jackd1
运行命令:
docker run -it --rm --privileged=true --device=/dev/snd:/dev/snd myContainerName jackd -R -d alsa -d hw:1
这将在您的容器中启动一个 jack 服务器。此后 sound_play
节点工作正常。
关于audio - Docker:JACK 服务器未运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37955550/