-
-
Notifications
You must be signed in to change notification settings - Fork 882
Description
Note
这个 issue 用来总结报错日志和对应的解决方法。
❓ XIAOMUSIC_HOSTNAME 怎么填
填写 docker 主机的 ip ,不是小爱音箱的ip,一般就是网页访问的后台地址里的 ip ,只要确保 ip 和小爱音箱在一个局域网内就行。
同时也支持 xx.xx.com 的域名格式,用于配置反代供外网访问,比如小爱音箱和 docker 主机不在同一个局域网内。
❓ Login Failed 登陆失败
表现就是 后台看不到设备列表 ,日志中会有对应的报错。
这个有专门的讨论,见 #16 ,一般是因为开了加速代理,关代理再尝试即可。也可以试试在局域网设备里的米家app上退出再重新登录一下。
在小米官网 www.mi.com 登陆过人脸或滑块验证基本上能解决 99%的 login failed 问题。
来自 @yilikun 的友情提示:
- 关闭本地代理。
- 如果是nas运行的,网络由bridge改为host。
- 米家app重新登陆。
- mi.com官网重新登陆。
- 检查 setting.json 文件里的账号密码是否正确。
如果是在 openwrt 类路由器系统上安装的,请检查路由器的防火墙设置。
❓ 网页后台可以播放,语音控制无效
这种情况是拉取不到对话记录导致的。
如果是首次在网页后台保存 did 后需要重启一次容器。
其他情况可能是被限制拉取对话记录次数,也可以尝试重启容器。
还有一种情况是配错了唤醒口令,可以在小爱音箱app里查看对话记录,也可以查看 xiaomusic 的日志。默认口令前缀是【播放歌曲】,没有这个前缀是无法识别的,说播放音乐是没用的,除非自己设置其他口令词。
已知 M01/XMYX01JY 小米小爱音箱HD 获取对话记录的接口比较特殊,需要开启【特殊型号获取对话记录:】开关才能正常语音控制。
❓ 日志显示正在播放,却没有声音
可以点击播放链接按钮,看看默认的那个链接能否播放。
已知部分触屏版不能播放可以在后台设置 【型号兼容模式】为 true 试试。如果你的设备型号需要手动设置这个选项,请在 #453 中反馈。
其他情况可能是 XIAOMUSIC_HOSTNAME 配错了地址,不是 docker 主机地址会导致小爱音箱无法访问到,而且需要和小爱音箱在同一个局域网下的地址。还有可能是端口配错了,修改了默认 8090 端口映射,需要同步修改其他参数,可以翻阅端口修改的文档。
如果端口不是8090,首次启动没配好端口的话,需要手动修改setting.json文件里的端口,或者把setting.json文件删除重新配置,或者在后台修改监听端口后重启。
可以点击播放歌曲后,查看日志里的歌曲链接,放到浏览器里打开试试,不能访问说明是端口或者hostname问题,如果是异地访问,需要把 hostname 修改为外网ip或者域名,需要注意音箱只支持访问ipv4,不能是ipv6的公网。
如果是配了公网反代端口,注意区分是 http 还是 https ,如果是 https 的,配置 XIAOMUSIC_HOSTNAME 时需要加上 https:// 前缀。
如果是在 openwrt 类路由器系统上安装的,请检查路由器的防火墙设置。
如果是在 windows 上安装的,请关闭防火墙。另外ip别填localhost,填192开头的那个ip.
❓ 无法播放 flac 格式歌曲
因设备差异和文件格式差异,已知部分设备不支持 flac 格式,比如 L05B L05C 。
❓ docker 镜像拉取失败
请更换镜像源或者使用代理。不同环境更换镜像源的方式不一样,可以网上搜索自己的 NAS 如何更换镜像源。
已经可以通过 DaoCloud 拉取镜像。
docker pull m.daocloud.io/docker.io/hanxi/xiaomusic:latest
docker tag m.daocloud.io/docker.io/hanxi/xiaomusic:latest hanxi/xiaomusic:latest
更多镜像源见 #398
❓ 启动失败,日志中出现 RuntimeError: can't start new thread
一般是 docker 版本太低,或者系统限制了 docker 使用的 cpu 数量,可以尝试升级 docker 到最新版本。
❓ DNS 解析错误
一般会出现下面这样的日志,表现就是设置页面看不到设备列表。
aiohttp.client_ _exceptions. ClientConnectorError: Cannot connect to host account.xiaomi.com:443 ssl:False [Temporary failure in name resolution]
可以尝试把主机的 DNS 设为 223.5.5.5 之后重启 docker 主机。
如果还是不行可以把 docker 的网络模式改成 host 模式。
❓ 点击播放后需要很久才开始播放的问题
这个问题新版本已经解决,如果还存在请反馈。
目前0.3.x版本还存在这个问题没有完全解决,可以暂时回退到0.2.0版本继续使用。
❓ 如何配置多个歌曲目录
services:
xiaomusic:
image: hanxi/xiaomusic
container_name: xiaomusic
restart: unless-stopped
ports:
- 8090:8090
volumes:
- /data/music1:/app/music/music1
- /data/music2:/app/music/music2
- /data/download:/app/music/download
- /data/xiaomusic/conf:/app/conf冒号左边的 /data/music1 和 /data/music2 改成你的目录即可。如果你是 windows 的 docker ,可以改成 D:/music1 和 D:/music2,盘符号开头,用 / 分割。
如果是 docker 部署的,建议不要去修改 web 后台里的音乐路径和配置路径等等所有路径除非你熟悉 docker 的目录映射机制。
❓ 能不能中文名
services:
xiaomusic:
image: hanxi/xiaomusic
container_name: xiaomusic
restart: unless-stopped
ports:
- 8090:8090
volumes:
- /data/music1:/app/music/歌曲目录1
- /data/music2:/app/music/歌曲目录2
- /data/download:/app/music/download
- /data/xiaomusic/conf:/app/conf❓ 能不能多层目录
可以,每层的每个目录会识别为一个播放列表。
❓ 是否需要手动获取 did
新版本不需要手动获取配置 did,不需要配置环境变量,直接在 web 后台填入小米账号密码保存后会自动获取到 did ,然后勾选对应的设备即可。
❓ 报错 601
报错日志大致如下:
Exception: Error https://api2.mina.mi.com/remote/ubus: {"code":601,"message":"illegal argument exception","data":"IllegalArgumentException: ubus call format illegal!"}原因是没有配置 did ,或者 did 配置错误。可以到设置页面选择正确的设备类型和 did 然后保存。
❓ 新功能没有生效
在设置页面重新保存一下,或者删除 setting.json 文件,重新在后台设置一次。
❓ 为什么会先说小爱音箱自带的回答,再说下载中或者过一会儿才播放本地歌曲
设计原理就是每秒不停的抓取对话记录,然后再打断小爱音箱自带的处理流程。整个过程下来会有延时,所以打断不会很及时,做不到无缝衔接。
❓ 云服务器上能否安装
可以安装,登录 mi.com 这个步骤可以使用终端里的浏览器 carbonyl 来操作:
docker run --rm -ti fathyb/carbonyl https://mi.com或者使用 browsh
docker run --rm -it browsh/browsh --startup-url https://mi.com在播放歌曲时,问小爱查询天气,小爱查询天气时,中途会断掉。
播放中会被xiaomusic接管,会跟原有功能冲突,需要先说关机来关闭xiaomusic的功能,再问小爱查询天气。
我家有个奇怪的问题,你给它暂停了,它过一会儿又自己开始唱了,不勘其扰。小爱重启都没用。
要说【关机】才能关掉 xiaomusic ,否则下一曲定时器到了会继续播放下一曲。
为什么播放进度条不能拖动
没有接口,目前做不到。
小爱触屏能不能显示本地的歌名歌词封面
可以,设置页面打开【启用继续播放】开关。
看不到歌曲列表
- 检查目录挂载是否正确
- 检查目录权限是否正确
- 检查文件夹名字是否是 UTF-8 格式
本机有声音,小爱音箱没声音,请问什么原因?
排查步骤:
- 测试链接是否能播放,能播放说明小爱音箱控制没问题,继续下一步排查。不能播放说明控制不了你的小爱音箱,一般是【型号兼容模式】设置问题。
- 小爱音箱和 NAS 是否在同一个局域网,检查 NAS 的 IP 和音箱的 IP 是否在同一个网段,不在同一个网段会导致音箱无法访问到 NAS 。如果在同一个局域网,检查 NAS 上的防火墙配置,关闭防火墙再测试,如果还是不行就继续下一步。
- 查看容器日志中的歌曲链接是否正常,点击后台页面上的播放歌曲时,容器中会有歌曲链接,一般是 http 开头的链接,复制完整链接到浏览器试试看能否打开,能打开说明网络没问题,继续下一步排查。不能打开有可能是 ip 和端口配置错误,请使用设置页面的自动填按钮自动填 ip 和端口。
- 歌曲文件格式是否是 mp3 格式,有些型号无法播放 flac 格式的歌曲,请使用 mp3 格式的歌曲文件测试,一个不行就多找几个文件测试。
在安装好第一次用语音正常,第二天就不能用语音了
拉取对话记录的问题。拉取对话记录太频繁了,可以使用定时任务功能,设置晚上关闭拉取对话记录。比如这样设置是早上6点开启拉取对话记录,晚上12点关闭:
[
{
"expression": "0 6 * * *",
"name": "set_pull_ask",
"arg1": "enable"
},
{
"expression": "0 0 * * *",
"name": "set_pull_ask",
"arg1": "disable"
}
]
播放下一首歌曲时会重复播放上一首歌曲的前几秒
时间延迟问题,可以把【下一首歌延迟播放秒数】设置成负数,表示提前几秒结束播放。