StreamMusic
StreamMusic copied to clipboard
在切换网络形式后,无法自动切换主备线路
Describe the bug (BUG 描述,多条问题请分别建立 issue) A clear and concise description of what the bug is. 我现在最新版本了,还是没法自动切换线路,明明主线路是内网地址,备线是外网线路,从Wi-Fi切到流量依然不会切换,无论是app内切换还是切换后退出app重新链接都无效,直接手动点击线路切换是正常的
To Reproduce (复现步骤,复现问题是处理问题的必要条件) Steps to reproduce the behavior:
-
使用可以连接内网线路的wifi打开app,此时使用线路为主线路(内网)
-
关闭wifi,再播放音乐即使已经无法获取,仍然不会切换备用线路(公网),此时查看网络连接,app依然在尝试访问内网地址,并且在回报超时后尝试几次内网连接,而并没有尝试访问备用线路
-
退出音流app,重新打开app,此时网络状态为可访问公网的流量状态,app依然在尝试访问主线,并没有去请求备线
-
手动切换为备用线路,可以看到网络访问是正常的,歌曲也可以正常播放
Expected behavior (期望行为) A clear and concise description of what you expected to happen. 主备线能够在访问超时后自动互相切换,如果实在难以实现,改成wifi下使用某条线路,流量使用某条线路也可以
Screenshots (截图) If applicable, add screenshots to help explain your problem.
Platform and Device Info (操作系统及设备信息)
- OS: iOS 17.6
- Version: 1.3.1
Music Server Type (音乐服务器类型) Navidrome 0.53.1 (1ba390a7)
- [ ] Direct Mode(直连模式)
- [x] Library Mode(媒体库模式)
Additional context (额外信息) Add any other context about the problem here. 与这个issue #277 表现相同,我看到在1.2.9以后的版本据说已经修复,但实测我这里还是会出现这样的情况
我的还好,就是主线路切备用慢,但是备用切主线路倒是秒切换
我的还好,就是主线路切备用慢,但是备用切主线路倒是秒切换
我这里就从来没触发成功过:(
音流会优先连接主线路,只有主线路连接超时之后,才会尝试连接备用线路
音流会优先连接主线路,只有主线路连接超时之后,才会尝试连接备用线路
问题是,已经连接超时了,仍然不会切换备线
日志如下

又试了一下,我这里可以自动切换,主线路切备用需要等待5秒的超时时间,备用切主线路基本上能连接到主线路就切换成功了。
你这里日志的报错不是超时错误,可能是代理软件直接断开连接了?试试关掉代理能否正常切换
又试了一下,我这里可以自动切换,主线路切备用需要等待5秒的超时时间,备用切主线路基本上能连接到主线路就切换成功了。
你这里日志的报错不是超时错误,可能是代理软件直接断开连接了?试试关掉代理能否正常切换
关掉qx尝试了一下确实切换成功了,很奇怪不知道是qx的问题还是什么
猜测是代理软件有自己的超时时间,小于音流目前设置的5s,导致连接提前断开了
猜测是代理软件有自己的超时时间,小于音流目前设置的5s,导致连接提前断开了
我尝试调整了代理的检测超时时间到8s,显然并没有作用 很抱歉我并不是开发者,不是很能理解目前的主备线路切换逻辑。按我所在行业的逻辑来看,为什么不能考虑在网络发生变化或其他情况下,主备线都进行检测,如果主备线都通就优先主线,主备线仅有其中一方可用就切换到可用线路,都不可用就提示错误,如果有更多的线路就把其他线路视为前两个线路的备用,以此类推。 现在因为代理软件提前把无法访问的192.168.0.0类似的本地地址拦下了,音流app也能检测到该地址无法访问,不能因为超时时长在5s以内回报不能访问,就一直尝试,直到超时次数到达上限也没有切换备线尝试。 如果是我这样理解没有问题的话,这种逻辑显然是不合理的。因为我也并不是开发者所以可能很不专业,您可以参考着来
音流会优先连接主线路,只有主线路连接超时之后,才会尝试连接备用线路
这就是音流的处理逻辑,且网络环境发生变化就会立即触发检测。你感受到的延迟只是在等待主线路的网络连接超时。
主备线路都检测会导致一个问题,在主备线路都能连接的情况下,音流会选择最先返回成功结果的线路作为当前线路,那么当前线路可能会由于线路的网络延迟而频繁切换,这样一是可能导致无法预期的问题出现,二是失去了优先使用主线路的功能。
不论如何,我会尝试在开启代理软件(其他软件,没有你这个软件)的情况尝试复现此问题,若能成功复现,想必是可以解决的。
音流会优先连接主线路,只有主线路连接超时之后,才会尝试连接备用线路
这就是音流的处理逻辑,且网络环境发生变化就会立即触发检测。你感受到的延迟只是在等待主线路的网络连接超时。
主备线路都检测会导致一个问题,在主备线路都能连接的情况下,音流会选择最先返回成功结果的线路作为当前线路,那么当前线路可能会由于线路的网络延迟而频繁切换,这样一是可能导致无法预期的问题出现,二是失去了优先使用主线路的功能。
不论如何,我会尝试在开启代理软件(其他软件,没有你这个软件)的情况尝试复现此问题,若能成功复现,想必是可以解决的。
从qx里的网络日志里看,应该是连尝试备线都没有尝试,一直在访问那个只能内网访问的主线,期待能改善吧 我也尝试一下其他代理软件,看是qx的原因,还是整个iOS代理都会遇到这种情况
🏷️ Priority: P0 - 全局歌单搜索失效,常用功能无法使用,影响用户查找音乐的效率。