-
Notifications
You must be signed in to change notification settings - Fork 170
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
增加自动暂停和播放源检测;修复macOS和iOS的bug #317
Conversation
ErBWs
commented
Oct 18, 2024
- 增加外部播放时自动暂停和播放源检测
- 修复[Bug]: macOS端在全屏的时候按esc会直接退出软件 #303
- 修复macOS和iOS在触发外部播放对话框后,点击框外关闭会导致无法再次拉起对话框,现在无法通过点击框外关闭
我不清楚具体代码注释在哪里 |
我重复一下上面的注释 你测试过 player_item.dart 中修改的逻辑吗, 它真的能修复 #303 吗 因为这段代码看上去很奇怪, 在非全屏的情况下按 esc 会调用 windowManager.unmaximize() 方法而不是 windowManager.hide() 方法。这似乎与 #303 描述的情况不符 |
现在的表现非常奇怪。 原来的代码有这样的问题:无论全屏与否,esc有时都可以直接关闭软件,非全屏不会关闭的情况esc也不会最小化 该PR的问题:其他功能正常,但不能最小化 如果将setFullScreen或者hide改成maximize,unmaximize,minimize,会出现全屏按下esc先退出全屏再直接最小化 其实对于macOS而言,esc没有最小化的作用,macOS最小化的唯一方式就是按红绿灯的黄色按键,而红绿灯按键在main.dart中被隐藏了,所以我不认为无法最小化是个问题,但代码逻辑看着确实奇怪,我会寻找修改方案 |
我也不能理解,但他甚至能先退出全屏再最小化,猜测是esc被多次触发,然后判断非全屏状态调用了hide()导致退出 |
好的,我大概明白了,还有一个问题。如果是抖动导致的话,那 #303 中的问题应该可以在非全屏模式下复现,实际上这会发生吗。 如果esc最小化不符合macOS的操作逻辑,也许我们可以直接在 macOS 上不执行 hide 方法。现在修改后的代码会转而在 macOS 上执行 unmaximize 方法。这样做的目的是什么。 |
这里提到了可以在非全屏复现 第二条实际上是我的逻辑问题,我没有仔细检查逻辑,被andriodFullScreen变量名误导了,以为上面是安卓端的缩小逻辑,也没有仔细想过为什么全屏esc直接hide而不是非全屏 |
androidFullscreen 的变量命名有问题,一直没有修改,这个变量应该是所有平台的全屏状态。 那看上去我们可以在 macOS 平台上响应esc按键时不执行 hide 方法,这样似乎可以修复 #303。 |
我无法找到其他办法解决3的问题,貌似与DLNA有关,但我并未搜索到有用的解决办法。错误信息如下
我利用fork的仓库构建了一份安卓版,返回键可以正常识别,因此先保持这样提交 |
这是一个 DLNA 设备搜索地址端口被占用(localhost:1900)的问题,应当和 Q3 无关 |
但当我尝试
|
关于这个我不太清楚,在 Windows 上并未复现 |
这个PR在我看来已经没有问题 后续我们可以在 #320 追踪 |