Python中的跨平台多媒体密钥

2024-03-29 09:39:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我刚刚开始一个应用程序,将需要能够接收多媒体键(播放/暂停,跳过,以前的)按下。我正在寻找目标Mac、Linux(主要发行版)和Windows。我见过a solution for GNOME似乎能满足我的需要,但听起来很简单,从来没有任何东西可以在所有主要平台上获取这些密钥。我还需要能够在全局范围内获取密钥,因为应用程序将在后台运行,并且永远不会有焦点。在

目前,我与Python的关系并不紧密,但由于我希望能够针对多个平台,Python似乎是一个不错的选择。有没有人编写过可以做到这一点的跨平台库?我还没找到那份工作。在

PyQT看起来是一个潜在的可行的选择,但是some people已经暗示在OSX上全局密钥检测可能有问题。在


Tags: 应用程序目标for关系linuxwindowsmac密钥
2条回答

使用PyQt(或PySide),您可以使用Qt::AA_CaptureMultimediaKeys应用程序标志来启用多媒体密钥的跨平台捕获。原则上,使用该标志,当用户按下多媒体键(如Play(Qt::Key_MediaPlay)、Stop(Qt::Key_MediaStop)、Pause(Qt::Key_MediaPause)等时,Qt程序应该能够接收键盘事件。在

我不能说是否所有的密钥都能在所有平台上得到支持,但总体来说,Qt的目标是在不同的操作系统之间提供非常好的互操作性。我认为用一个简单的原型,你应该能够很快地回答这个问题(我没有访问MacOS环境的权限,所以我不能在那里测试,但是对于Windows&Linux,它应该可以工作)。有关如何使用Qt处理键盘事件的更多信息,请参阅QKeyEvent class的文档。在

几个月前我接管了python-mmkeys。实际上我从未尝试过编译它,但它被包含在一个项目的代码中。在

它依赖于PyGTK,但它在GNU/Linux、MacOX和Windows上可用。在

代码非常容易使用:

import mmkeys
keys = mmkeys.Mmkeys()
keys.connect("mm_prev", previous_cb)
keys.connect("mm_next", next_cb)
keys.connect("mm_playpause", playpause_cb)

相关问题 更多 >