如何从Docker容器访问JACK音频

我在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>

展开
收起
祖安文状元 2020-01-06 16:00:39 741 分享 版权
1 条回答
写回答
取消 提交回答
  • 从这个:

    SHared内存使用IPC的另一个方法是共享内存。JACK系统中所有共享内存的基类是JackShmMemAble。需要进入共享内存的对象需要从该基类派生。此类的实现再次依赖于平台。对于Linux系统,使用System V共享内存API。共享内存用于多种目的,例如向客户端RT线程通知其必须设置的优先级。模板类JackShmReadWritePtr,JackShmReadWritePtr1和JackShmReadPtr用于访问共享内存。

    因此,我认为您应该/dev/shm像下面那样将mount绑定到容器,然后我猜容器中的客户端可以与具有共享内存的主机中的jack音频服务器通信:

    2020-01-06 16:00:44
    赞同 展开评论

国内唯一 Forrester 公共云容器平台领导者象限。

还有其他疑问?
咨询AI助理