在浏览器中捕获媒体键事件

时间:2012-03-07 11:09:30

标签: html firefox google-chrome keyboard

如今,许多键盘上都有媒体控制键:播放/暂停,下一个,上一个等等。

Media keys

我不是在谈论F1-F12键,顺便说一句

是否可以在浏览器的网页中捕获这些媒体键上的按键并做出反应?我的基本测试表明,它们不会触发window对象上的按键事件。

内置的解决方案显然会很棒,但对于我的情况,即使是扩展也没问题。是否可以编写一个可以执行此操作的Firefox / Chrome插件?

2 个答案:

答案 0 :(得分:1)

是的,这是可行的,已经完成http://smus.com/chrome-media-keys/ 也许他会与你分享源代码

答案 1 :(得分:1)

当前,Chrome(台式机和Android)具有Media Session API来处理一些媒体按键事件。

navigator.mediaSession.setActionHandler('play', function() { /* Code excerpted. */ });
navigator.mediaSession.setActionHandler('pause', function() { /* Code excerpted. */ });
navigator.mediaSession.setActionHandler('seekbackward', function() { /* Code excerpted. */ });
navigator.mediaSession.setActionHandler('seekforward', function() { /* Code excerpted. */ });
navigator.mediaSession.setActionHandler('previoustrack', function() { /* Code excerpted. */ });
navigator.mediaSession.setActionHandler('nexttrack', function() { /* Code excerpted. */ });

还可以使用playbackState accessor来访问当前的播放状态,即

navigator.mediaSession.playbackState; //"paused" or "playing"