3

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

目前,我与 Python 的联系并不紧密,但由于我希望能够针对多个平台,Python 似乎是要走的路。有没有人写过任何可以做到这一点的跨平台库?我一直没能找到任何工作。

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

4

2 回答 2

0

使用PyQt(或PySide),您可以使用Qt::AA_CaptureMultimediaKeys应用程序标志来启用多媒体密钥的跨平台捕获。原则上,使用该标志,您的 Qt 程序应该能够在用户按下多媒体键(例如 Play ( Qt::Key_MediaPlay)、Stop ( Qt::Key_MediaStop)、Pause ( Qt::Key_MediaPause) 等)时接收键盘事件。有关支持键的完整列表,请查看文档

我不能说是否所有平台都支持所有键,但总的来说,Qt 旨在提供不同操作系统之间非常好的互操作性。我认为通过一个简单的原型,您应该能够非常快速地回答这个问题(我无法访问 MacOS 环境,所以我无法在那里对其进行测试,但对于 Windows 和 Linux,它应该可以工作)。有关如何使用 Qt 处理键盘事件的更多信息,请查看QKeyEvent 类的文档。

于 2013-08-19T14:22:16.210 回答
0

几个月前我接管了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)
于 2013-08-24T00:55:39.893 回答