媒体播放/暂停模拟

时间:2012-05-04 00:19:03

标签: python windows

我的键盘包含一排用于各种非标准键盘任务的按钮。这些键包含修改音量,播放或暂停以及跳过曲目等功能。如何使用Python模拟基本播放/暂停?顺便说一下,我在Windows上。

3 个答案:

答案 0 :(得分:5)

我会使用pywin32。与安装捆绑在一起的是大量的API文档(通常放在像C:\Python32\Lib\site-packages这样的东西。)它实际上包含了很多东西,在Win32库中用于Windows中的许多低级任务。 / p>

安装后,您可以使用keybd_event的包装器。

您也可以使用SendInput代替keybd_event,但它似乎不会被PyWin32包装。 SendMessage也是一种选择,但更麻烦。

您需要查找这些特殊按钮的虚拟扫描代码,因为我怀疑char-to-code映射功能会对您有所帮助。您可以找到参考here

然后调用函数是一件简单的事情。下面的片段在我的电脑上暂停了Chuck Berry。

>>> import win32api
>>> VK_MEDIA_PLAY_PAUSE = 0xB3
>>> hwcode = win32api.MapVirtualKey(VK_MEDIA_PLAY_PAUSE, 0)
>>> hwcode
34
>>> win32api.keybd_event(VK_MEDIA_PLAY_PAUSE, hwcode)

MapVirtualKey为我们提供keybd_event需要的硬件扫描代码(或更可能是键盘驱动程序。)

请注意,所有这些都是由键盘驱动程序捕获的,因此您实际上无法控制发送击键的位置。使用SendMessage,您可以将它们发送到特定窗口。它通常与媒体密钥无关,因为它们被音乐播放器等截获。

答案 1 :(得分:0)

在Windows 10 64上,这对我不起作用,已安装所有最新更新。我需要它(第三个参数2),然后才能起作用。

win32api.keybd_event(0xB3,0,2,0)

没有去研究为什么,但是将其扔到了那里,因为由于某种原因,我和其他类似的帖子使我感到沮丧,因为它不能在我的电脑上工作。

此操作成功在我的PC上暂停/播放了Amazon Music。

答案 2 :(得分:0)

您可以使用pyautogui。该库包含许多键盘和鼠标模拟。 要在cmd中运行pip install pyautogui

要模拟播放/暂停按键,应使用pyautogui.press("playpause")

https://pyautogui.readthedocs.io/en/latest/keyboard.html上查看其文档,以查看受支持的键和其他一些键盘功能的列表。