tsukinaha / tsukimi

A simple third-party Emby client
GNU General Public License v3.0
1.52k stars 38 forks source link

Issue Feedback: 内置播放器映射键码不完整 #108

Open Tony15246 opened 2 months ago

Tony15246 commented 2 months ago

当前程序版本

0.12.2

功能改进

我尝试了使用load external mpv config中的config=true选项。虽然使用config=true之后,能够成功加载我的自定义配置,但是使用大部分的快捷键都会出现报错,使用最基本的快捷键`打开mpv控制台也会出现报错Error: Raw(-4)。另外,我的自定义配置即使加载并渲染出来了,也因为图层优先级太低被压在内嵌mpv播放器配套的UI下面,导致完全无法使用。

我知道大佬们实现mpv播放器内嵌花费了很多时间精力,最终实现的效果也很好。但是我确实有使用自己的mpv播放器自定义设置和插件的需求,比如使用我自定义的弹幕加载插件。如果保留外部调用MPV功能不是很违背大佬们的设计理念,也不是很破坏代码的协调性的话,不知能否保留一个外部调用MPV的选项满足一下我这种小众需求呢?

参考资料

No response

tsukinaha commented 2 months ago

内嵌是可选的,仅需使用非 libmpv 的 video output 就可以仍然使用外置窗口。 至于快捷键其实是软件捕获的键盘输入然后传到 mpv 的,由于在 rust 中实现的键码映射与 glib::keyval 没有对照表,所以现有的映射都是手动映射上去的。如果你有兴趣,可以提供所有不能使用的键位,我会一一映射上去

tsukinaha commented 2 months ago

所以你如果同意,我会把这个 issue 改为 「MPV 快捷键映射不完全」,并留作此议题使用

Tony15246 commented 2 months ago

所以你如果同意,我会把这个 issue 改为 「MPV 快捷键映射不完全」,并留作此议题使用

感谢您的回答!使用非 libmpv 的 vo以后确实可以使用外置窗口了。关于快捷键感觉似乎不是按键映射的问题,我切换到非libmpv的vo之后快捷键就也正常了。我使用的也就是一些常见的快捷键,像ctrl + jctrl + d之类的,按理来说映射都有覆盖到,我猜测不是快捷键映射的问题,可能是libmpv或者我本地环境的问题。

不过现在出现一个新的问题是,我无法正常退出调用的外置mpv窗口,点击关闭mpv窗口就会直接卡死,只能通过命令行杀死进程。我目前无法确定是不是我本地的窗口管理框架的问题,我目前使用的是Wayland作为窗口管理器。整个退出过程中tsukimi在命令行也没有任何报错。

tsukinaha commented 2 months ago

所以你如果同意,我会把这个 issue 改为 「MPV 快捷键映射不完全」,并留作此议题使用

感谢您的回答!使用非 libmpv 的 vo以后确实可以使用外置窗口了。关于快捷键感觉似乎不是按键映射的问题,我切换到非libmpv的vo之后快捷键就也正常了。我使用的也就是一些常见的快捷键,像ctrl + jctrl + d之类的,按理来说映射都有覆盖到,我猜测不是快捷键映射的问题,可能是libmpv或者我本地环境的问题。

直接关闭这个窗口确实会让软件卡死,这个问题我研究了一段时间,也没有找到合适的解决方法,甚至找不到卡死原因。未来如果有进展的话我会去尝试修复。

至于快捷键,我会加入一些 log 方便判断问题,还请帮忙多多测试,谢谢

Tony15246 commented 2 months ago

至于快捷键,我会加入一些 log 方便判断问题,还请帮忙多多测试,谢谢

没问题👌,遇到按键映射的问题的话我会积极向您反馈的

tsukinaha commented 2 months ago

现在初步加入了一些 tracing 花花绿绿的,有点好看

Tony15246 commented 2 months ago

我目前测试下来,我个人经常使用的按键中,ctrl`会触发控制台报错。按下ctrl会出现报错Error: Raw(-12),按下`会出现报错Error: Raw(-4)。按下ctrl虽然报错,但是带有ctrl的组合快捷键可以正确触发;`按下后无反应,没有出现控制台,但我猜测只是因为原生mpv的前端被上层layer遮盖住了,按键应该有正确生效(这只是我的猜测)。

现在初步加入了一些 tracing 花花绿绿的,有点好看

不好意思,我个人没有过rust开发经验,不知道这个项目要怎么构建😂,目前使用的还是release版中的二进制文件。如果您有空教我一下构建方法的话,我会用带最新版tracing的代码再测试看看。

tsukinaha commented 2 months ago

现在初步加入了一些 tracing 花花绿绿的,有点好看

不好意思,我个人没有过rust开发经验,不知道这个项目要怎么构建😂,目前使用的还是release版中的二进制文件。如果您有空教我一下构建方法的话,我会用带最新版tracing的代码再测试看看。

AUR 中有 git 包。 如果你不使用 AUR,可以使用 CI 构建的包 :)

Tony15246 commented 2 months ago

AUR 中有 git 包。 如果你不使用 AUR,可以使用 CI 构建的包 :)

AUR中这个git包感觉版本比release中的还老好几个版本,我能找到的是这个包aur/tsukimi-git 0.12.0.r437.g1b6f33d-1,感觉应该不是这个版本?我安装了archlinuxcn源中的archlinuxcn/tsukimi-git 0.12.2.r512.g8689e23-1,但感觉这个也不是最新版,没有看到更多tracing。

我下载了最新版CI里的文件,以下是测试结果,依旧是ctrl`会导致报错,最新版报错如下

2024-09-18T11:43:15.300080Z  INFO tsukimi::ui::mpv::tsukimi_mpv: MPV Catch Key pressed: `
2024-09-18T11:43:15.300113Z  WARN tsukimi::ui::mpv::tsukimi_mpv: MPV command Error: Raw(-4), Command: keypress
2024-09-18T11:43:15.424930Z  INFO tsukimi::ui::mpv::tsukimi_mpv: MPV Catch Key released: `
2024-09-18T11:43:15.425001Z  WARN tsukimi::ui::mpv::tsukimi_mpv: MPV command Error: Raw(-4), Command: keyup

2024-09-18T11:43:36.053132Z  INFO tsukimi::ui::mpv::tsukimi_mpv: MPV Catch Key pressed: Ctrl+
2024-09-18T11:43:36.053196Z  WARN tsukimi::ui::mpv::tsukimi_mpv: MPV command Error: Raw(-12), Command: keypress
2024-09-18T11:43:36.205980Z  INFO tsukimi::ui::mpv::tsukimi_mpv: MPV Catch Key released: 

2024-09-18T11:43:46.556085Z  INFO tsukimi::ui::mpv::tsukimi_mpv: MPV Catch Key pressed: Ctrl+
2024-09-18T11:43:46.556137Z  WARN tsukimi::ui::mpv::tsukimi_mpv: MPV command Error: Raw(-12), Command: keypress
2024-09-18T11:43:46.716084Z  INFO tsukimi::ui::mpv::tsukimi_mpv: MPV Catch Key pressed: Ctrl+d
2024-09-18T11:43:46.840496Z  INFO tsukimi::ui::mpv::tsukimi_mpv: MPV Catch Key released: Ctrl+d
2024-09-18T11:43:46.979392Z  INFO tsukimi::ui::mpv::tsukimi_mpv: MPV Catch Key released: 

2024-09-18T11:43:54.389405Z  INFO tsukimi::ui::mpv::tsukimi_mpv: MPV Catch Key pressed: ESC
2024-09-18T11:43:54.516118Z  INFO tsukimi::ui::mpv::tsukimi_mpv: MPV Catch Key released: ESC

2024-09-18T11:44:01.020464Z  INFO tsukimi::ui::mpv::tsukimi_mpv: MPV Catch Key pressed: Ctrl+
2024-09-18T11:44:01.020508Z  WARN tsukimi::ui::mpv::tsukimi_mpv: MPV command Error: Raw(-12), Command: keypress
2024-09-18T11:44:01.116515Z  INFO tsukimi::ui::mpv::tsukimi_mpv: MPV Catch Key pressed: Ctrl+j
2024-09-18T11:44:01.270612Z  INFO tsukimi::ui::mpv::tsukimi_mpv: MPV Catch Key released: Ctrl+j
2024-09-18T11:44:01.395732Z  INFO tsukimi::ui::mpv::tsukimi_mpv: MPV Catch Key released: 
tsukinaha commented 2 months ago

AUR 中有 git 包。 如果你不使用 AUR,可以使用 CI 构建的包 :)

AUR中这个git包感觉版本比release中的还老好几个版本,我能找到的是这个包aur/tsukimi-git 0.12.0.r437.g1b6f33d-1,感觉应该不是这个版本?我安装了archlinuxcn源中的archlinuxcn/tsukimi-git 0.12.2.r512.g8689e23-1,但感觉这个也不是最新版,没有看到更多tracing。

git 包会抓取最新的 commit, 版本号只是打包时设置的。

我看到了一些错误的地方,会进行处理的,谢谢你的反馈

Tony15246 commented 2 months ago

不用谢,没能力pr只能帮帮这种小忙了(=^-ω-^=)