JavaScript 检测播放/暂停键盘(虚拟)键

2023-11-21

By accident, I just pressed the play/pause (▶/❚❚) button on my keyboard (the button just above Num Lock on Lenovo keyboard, while playing a YouTube video in a tab that was not focused. To my massive surprise, the YouTube video paused immediately.

现在,我尝试查找它是如何工作的,但我无法在互联网上找到任何解释如何检测此类按键的按键的信息。我尝试跑步onkeydown = function(e) {console.log(e)}在我的控制台中,但按播放/暂停按钮没有触发任何事件。还,https://keycode.info/也没有给我任何帮助。我确实找到了http://www.kbdedit.com/manual/low_level_vk_list.html其中列出了很多“虚拟按键代码”,其中包括VK_MEDIA_PLAY_PAUSE,这可能是我按下的键,但我没有找到任何方法来用它触发 JS 中的事件。

现在我确实想指出,此功能似乎在 Firefox 中不起作用,仅在 Chrome 中起作用(据我测试)。这可能仍处于实验阶段,但我真的很想知道 YouTube 使用什么系统来捕获此事件,即使选项卡当前未打开(Chrome 目前甚至没有关注)

PS:我在Ubuntu 18.04上经历过这个;例如,我不确定这是否适用于 Windows。


From Google Chrome 媒体会话示例:

/* Media navigation Action handlers */

    navigator.mediaSession.setActionHandler('previoustrack', function() {
      console.log('> User clicked "Next Track" icon.');
    });

    navigator.mediaSession.setActionHandler('nexttrack', function() {
      console.log('> User clicked "Next Track" icon.');
    });

    navigator.mediaSession.setActionHandler('play', function() {
      log('> User clicked "Play" icon.');
      // Do something more than just playing audio...
    });

这些 chrome api 在 chrome 57+ 和 Firefox 82+ 上可用

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JavaScript 检测播放/暂停键盘(虚拟)键 的相关文章

随机推荐