【问题标题】:How does the play/pause button on the keyboard work?键盘上的播放/暂停按钮如何工作?
【发布时间】:2016-09-29 07:06:40
【问题描述】:

我的电脑键盘和许多现代键盘一样,有一个播放/暂停音乐的按钮。它适用于许多应用程序,如 Spotify 原生播放器、谷歌音乐网络播放器、iTunes 等。其中一些是原生的,有些在浏览器中。即使程序(或浏览器选项卡)不在焦点上,该按钮也可以工作。这些程序如何与此功能挂钩?

我希望它的工作原理如下,但这只是一个猜测:

  1. Web 应用向浏览器注册一个声道,为暂停/播放/停止等提供一些回调。
  2. 浏览器向操作系统注册其声道,提供一些回调函数
  3. 按下键盘上的暂停按钮
  4. 操作系统为注册的声道调用回调
  5. 浏览器的原生回调调用网络应用的 Javascript 回调函数,执行暂停

(对于本机应用程序,将跳过通过浏览器的间接访问)

【问题讨论】:

    标签: browser keyboard-events


    【解决方案1】:

    我猜你的意思是 Windows。不同操作系统的答案或多或少是相同的,我将在此处指出特定于 Windows 的参考。

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

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

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

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

    【讨论】:

    • 天哪,你说得对,它比我想象的要简单得多 :) 谢谢!
    猜你喜欢
    • 2017-07-10
    • 2014-05-06
    • 1970-01-01
    • 1970-01-01
    • 2016-10-25
    • 2020-08-13
    • 2019-06-25
    • 1970-01-01
    • 2014-12-05
    相关资源
    最近更新 更多