键盘上的播放/暂停按钮如何工作?

时间:2016-09-21 21:44:51

标签: browser keyboard-events

我的电脑键盘与许多现代电脑键盘一样,有一个播放/暂停音乐的按钮。它适用于许多应用程序,如Spotify原生播放器,Google音乐网络播放器,ITunes等。其中一些是原生的,有些是在浏览器中。即使程序(或浏览器选项卡)未对焦,该按钮仍然有效。这些程序如何与此功能挂钩?

我希望它的工作方式如下,但这只是猜测:

  1. 网络应用程序在浏览器中注册声道,为暂停/播放/停止提供一些回调等。
  2. 浏览器向操作系统注册其声道,提供一些回调功能
  3. 在键盘上按下暂停按钮
  4. 操作系统调用已注册声道的回调
  5. 浏览器的本机回调调用Web应用程序的Javascript回调函数,该函数执行暂停
  6. (对于本机应用程序,将跳过浏览器的间接)

1 个答案:

答案 0 :(得分:1)

我猜你的意思是Windows。答案在操作系统中大致相同,我在这里指出了Windows特定的参考资料。

它们并不像你认为的那样特别。它们是标准键盘键,甚至是have constants in the Windows API(查找VK_MEDIA_VK_LAUNCH_VK_BROWSER_等。)

键盘硬件发送将这些键的扫描码发送到操作系统,就像普通键一样。

程序可以使用SetWindowsHookEx的Windows挂钩全局侦听键盘事件(请参阅WH_KEYBOARD)。

浏览器可能会也可能不会公开这些密钥。浏览器可以将keydownkeyup事件发送到具有原始扫描代码的元素,因此没有理由无法在网页中检测到它们。 Windows挂钩可能会过滤掉这些密钥,因此它们可能无法访问浏览器进程。您可以通过在光标中按下其中一个键来尝试它!尝试它!"字段,在this page上。