开发者社区 > 云原生 > 容器服务 > 正文

如何从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 715 0
1 条回答
写回答
取消 提交回答
  • 从这个:

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

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

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

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

相关电子书

更多
使用CNFS搭建弹性Web服务 立即下载
阿里云文件存储 NAS 在容器场景的最佳实践 立即下载
何种数据存储才能助力容器计算 立即下载