我在Docker容器中有一个多媒体应用程序。我想将其连接到在主机系统中运行的JACK音频服务器。我该怎么做?
这是我当前的(但不起作用)docker run命令:
docker run \
--rm \
-i -t \
-u $(id -u):$(id -g) \
-v $(pwd):/home/app/build \
-v $HOME:/home/app \
-v /media:/media \
-v /usr/local/lib64:/usr/local/lib64 \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-v /etc/machine-id:/etc/machine-id \
-v /run/user/$(id -u)/pulse:/run/user/$(id -u)/pulse \
-v $HOME/.pulse:/home/app/.pulse \
--env DISPLAY \
--env HOME='/home/app' \
--privileged \
--group-add $(getent group audio | cut -d: -f3) \
--name "app" \
<image name> <parameters>
从这个:
SHared内存使用IPC的另一个方法是共享内存。JACK系统中所有共享内存的基类是JackShmMemAble。需要进入共享内存的对象需要从该基类派生。此类的实现再次依赖于平台。对于Linux系统,使用System V共享内存API。共享内存用于多种目的,例如向客户端RT线程通知其必须设置的优先级。模板类JackShmReadWritePtr,JackShmReadWritePtr1和JackShmReadPtr用于访问共享内存。
因此,我认为您应该/dev/shm像下面那样将mount绑定到容器,然后我猜容器中的客户端可以与具有共享内存的主机中的jack音频服务器通信:
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。