捕捉音量增大按钮按下?

时间:2015-01-20 17:01:53

标签: javascript firefox-os

Firefox OS应用程序可以检测到按下音量增大按钮的时间吗?如果是这样,怎么样?

(也许它只是document上的关键事件,尚未尝试过)

1 个答案:

答案 0 :(得分:2)

Bug 989198是将keydown / keyup事件暴露给应用程序的错误。这个wiki page描述了这种新的KeyboardEvent调度机制。目前,在FFOS手机 v2.2及更高版本版本中,只会将VolumeUpVolumeDown个关键事件发送到应用中。

在FFOS 2.2及更高版本上,任何应用都可以收听音量调高和音量调低按钮的keydownkeyup事件。 分派给处理程序的事件是常规KeyboardEvent(与桌面浏览器中相同)。当用户按下音量减小或音量增大时,带有.key = VolumeDownVolumeUp的KeyboardEvent将被调度到专注的应用。如果您想阻止系统应用程序处理它们(即将音量降低或向上),只需在关键事件处理程序中调用event.preventDefault()即可。

以下是keydown事件处理的示例:

var keyDownHandler = function(evt) {
  if (evt.key === 'VolumeDown') {
    // process logic of volume-down
  } else if (evt.key === 'VolumeUp') {
    // process logic of volume-up
  }
  evt.preventDefault(); // to stop system app from processing keydown event
};

window.addEventListener('keydown', keyDownHandler);