taojy123 / KeymouseGo

类似按键精灵的鼠标键盘录制和自动化操作 模拟点击和键入 | automate mouse clicks and keyboard input
http://taojy123.github.io/KeymouseGo
GNU General Public License v2.0
7.15k stars 1.04k forks source link

提示音问题 #124

Closed Mishasama closed 2 years ago

Mishasama commented 2 years ago

能否提供一个修改提示音音量和相应的开关?

虽然说可以通过Windows的音量面板来调整,但多少有点麻烦而且不好找。 有时候这破WIN的这音量面板功能还打不开,直接没法调。

另外还有个逻辑问题: 启动提示音是在执行第一行的时候才会响起来。 如果在第一条里设置了较长的等待间隔,那就没法通过提示音来确定是否已经启动了脚本。 提示音应该是响应按键事件,而不是响应脚本的具体执行情况的。

这个逻辑问题同样发生在脚本的启停上面,会导致包含等待时间长的脚本一直卡在等待间隔上,无法即时响应操作(比如按钮一直是灰的,直到完成执行下一条脚本才恢复)。 image

Mishasama commented 2 years ago

另外UI配色能不能改一下……这白+灰有点阴间啊,老人家表示看不清😅

希望能给个选择,比如加个选项调整为时下流行的黑暗模式。 image 像这样的话看起来可读性就比较高了。

ZutJoe commented 2 years ago

另外还有个逻辑问题: 启动提示音是在执行第一行的时候才会响起来。 如果在第一条里设置了较长的等待间隔,那就没法通过提示音来确定是否已经启动了脚本。 提示音应该是响应按键事件,而不是响应脚本的具体执行情况的。

提示音在执行开始时才会响起来是考虑当时有人需要延时启动脚本进行提示, 所以才设置了 https://github.com/taojy123/KeymouseGo/issues/59#issuecomment-841796500

这个逻辑问题同样发生在脚本的启停上面,会导致包含等待时间长的脚本一直卡在等待间隔上,无法即时响应操作(比如按钮一直是灰的,直到完成执行下一条脚本才恢复)。 image

这个大概率是因为程序流程没有执行完, 然后加了控制的原因

Monomux commented 2 years ago

这个逻辑问题同样发生在脚本的启停上面,会导致包含等待时间长的脚本一直卡在等待间隔上,无法即时响应操作(比如按钮一直是灰的,直到完成执行下一条脚本才恢复)。

目前杀线程的方式是在每行脚本执行前后根据flag判断是否需要中断执行,导致了响应延时的问题,考虑修改一下杀线程的方法

希望能给个选择,比如加个选项调整为时下流行的黑暗模式

在新的PR里加入了主题选择功能,使用的都是qt_material中内置的主题

Monomux commented 2 years ago

目前播放声音的模块是playsound,这个模块没有音频调节的功能。如果要调节音量,还需要引入其它模块调节系统的音量;或者可以将播放声音的模块换成pygame。 另外提示音的播放也可以放在插件内,实现提示音的自定义和播放时机的自定义。

ZutJoe commented 2 years ago

另外提示音的播放也可以放在插件内,实现提示音的自定义和播放时机的自定义。

可行

Monomux commented 2 years ago

目前杀线程的方式是在每行脚本执行前后根据flag判断是否需要中断执行,导致了响应延时的问题,考虑修改一下杀线程的方法

现在的执行延时采用的是time.sleep,是阻塞的,如果改成thread.event.wait,结合相应的逻辑控制,可以实现按下快捷键后立刻结束执行。

Monomux commented 2 years ago

看了一下PySide2的文档,发现提示音的播放可以靠内置的QMediaPlayer实现,并且支持音量调节,这样也不需要引入额外的媒体播放库了😀。

ZutJoe commented 2 years ago

看了一下PySide2的文档,发现提示音的播放可以靠内置的QMediaPlayer实现,并且支持音量调节,这样也不需要引入额外的媒体播放库了😀。

可以, 这样我也不用写提前缓存好提示音了, playsound好像在初次运行的时候会出现延迟的问题

ps: 看了一下, 你改了名字, 哈哈哈哈哈哈, 我看见提示邮件的时候, 以为有一个新人回复了问题

Monomux commented 2 years ago

添加了音量控制控件 demo 但是测试时第一次播放还是会有延迟。

Monomux commented 2 years ago

但是测试时第一次播放还是会有延迟。

可以使用QSoundEffect代替QMediaPlayer实现低时延播放,但是QSoundEffect看起来不支持mp3格式:

This class allows you to play uncompressed audio files (typically WAV files) in a generally lower latency way

测试时播放mp3文件没有声音,换为wav文件就可以了。

Monomux commented 2 years ago

已解决播放模块替换后的衍生问题,如果测试无误,issue将在PR合并后自动关闭

ZutJoe commented 2 years ago

你这个分支合并是咋回事, 为啥是在这个项目里的😂 还有上一个打标签的那个

Monomux commented 2 years ago

你这个分支合并是咋回事, 为啥是在这个项目里的😂 还有上一个打标签的那个

成为Collaborator了,为了更便捷地开发就采用了同一仓库不同分支的方法。

ZutJoe commented 2 years ago

成为Collaborator了,为了更便捷地开发就采用了同一仓库不同分支的方法。

哦哦, 好的