Docker安装AirConnect并自定义AirPlay设备名

星期四, 12月 5, 2024 | 2分钟阅读 | 更新于 星期四, 12月 5, 2024

@

一. AirConnect 是什么?

AirConnect 是 github 上面一个开源的项目,在各方大神的努力下,现在有了支持群晖的分支。它允许你使用 AirPlay 播放流媒体到不支持 AirPlay 的如 UPnP/Sonos & Chromecast 设备。简单来说,只要你在局域网的任何一台支持安装 AirConnect 的设备安装了该软件,它就能使你局域网的不支持 AirPlay 的设备支持 AirPlay。

二. 安装和准备

1. 开启音箱的 DLAN 功能

2. 安装 AirConnect

安装前请确认docker已经正常可用

docker run -d  --name AirConnect --net=host 1activegeek/airconnect

这时打开 iPhone 手机的 Airplay 列表里就会出现小爱音箱 (如果没有请检查是否开启 DLAN 或者重启小爱音箱)

三. 自定义AirPlay设备名

登录 AirConnect 容器

docker exec -it AirConnect  bash

安装编辑器 vim

apt install vim

以下操作以 UPnP/Sonos (airupnp) 设备为例, Chromecast (aircast) 相似

根据网络环境生成默认配置,执行以下命令

bin/airupnp-linux-x86_64 -i /config.xml

等待命令执行完成

修改启动守护程序

vim /etc/supervisord.conf

[supervisord]
nodaemon=true

[program:airupnp]
redirect_stderr=true
command=/bin/airupnp-linux-x86_64 -l 1000:2000 -x /config.xml #此处修改,增加 -x 参数(指定运行配置)
process_name = airupnp-linux-x86_64

[program:aircast]
redirect_stderr=true
command=/bin/aircast-linux-x86_64
process_name = aircast-linux-x86_64

修改 AirConnect 配置文件,自定义

vim /config.xml

<?xml version="1.0"?>
<airupnp>
    <common>
        <protocolInfo>
            <pcm>http-get:*:audio/L16;rate=44100;channels=2:DLNA.ORG_PN=LPCM;DLNA.ORG_OP=00;DLNA.ORG_CI=0;DLNA.ORG_FLAGS=0d500000</pcm>
            <wav>http-get:*:audio/wav:DLNA.ORG_OP=00;DLNA.ORG_CI=0;DLNA.ORG_FLAGS=0d500000</wav>
            <flac>http-get:*:audio/flac:DLNA.ORG_OP=00;DLNA.ORG_CI=0;DLNA.ORG_FLAGS=0d500000</flac>
            <mp3>http-get:*:audio/mpeg:DLNA.ORG_PN=MP3;DLNA.ORG_OP=00;DLNA.ORG_CI=0;DLNA.ORG_FLAGS=0d500000</mp3>
        </protocolInfo>
        <enabled>1</enabled>
        <max_volume>100</max_volume>
        <http_length>-1</http_length>
        <upnp_max>1</upnp_max>
        <codec>flc</codec>
        <metadata>1</metadata>
        <flush>1</flush>
        <artwork></artwork>
        <latency></latency>
        <drift>0</drift>
    </common>
    <main_log>info</main_log>
    <upnp_log>info</upnp_log>
    <util_log>warn</util_log>
    <raop_log>info</raop_log>
    <log_limit>-1</log_limit>
    <max_players>32</max_players>
    <binding>?</binding>
    <ports>0:0</ports>
    <device>
        <udn>uuid:xxxxxx-xxxxxx-xxx-xxxx-xxxxxxxxxxx</udn>
        <name>小爱音箱-3949+</name> # 直接修改这里,例如修改为 客厅小爱音箱)
        <mac>xx:xx:xx:xx:xx:xx</mac> 
        <enabled>1</enabled> # 取消这个设备的airplay显示
    </device>
    <device>
        <udn>uuid:xxxxxx-xxxxxx-xxx-xxxx-xxxxxxxxxxx</udn>
        <name>小爱音箱-1282+(直接修改这里,例如修改为 卧室小爱音箱)</name>
        <mac>xx:xx:xx:xx:xx:xx</mac>
        <enabled>1</enabled>
    </device>
</airupnp>

:wq 保存

exit 退出容器

重启容器

docker restart  AirConnect

其他相关阅读

airupnp-linux-x86_64 命令参数
Usage: [options]
  -b < address>        network address to bind to
  -c <mp3[:<rate>]|flc[:0..9]|wav>    audio format send to player
  -x <config file>    read config from file (default is ./config.xml)
  -i <config file>    discover players, save <config file> and exit
  -I             auto save config at every network scan
  -l <[rtp][:http][:f]>    RTP and HTTP latency (ms), ':f' forces silence fill
  -r             let timing reference drift (no click)
  -f <logfile>        Write debug to logfile
  -p <pid file>        write PID in file
  -d <log>=<level>    Set logging level, logs: all|raop|main|util|cast, level: error|warn|info|debug|sdebug
  -Z             NOT interactive
  -k             Immediate exit on SIGQUIT and SIGTERM
  -t

AirConnect Docker image https://hub.docker.com/r/1activegeek/airconnect/

comments powered by Disqus

© 2018 - 2025 DiyBeta's Blog

Powered by Hugo & Dream

Me

Cut out summary from your post content here.

The remaining content of your post.