捕获音量增大按钮按下?

Capture volume up button press?

Firefox OS 应用程序能否检测到何时按下音量增大按钮?如果可以,怎么做?

(也许这只是 document 上的一个关键事件,还没有尝试过)

Bug 989198 is the bug to expose keydown/keyup events to apps. And this wiki page 描述了这种新的 KeyboardEvent 调度机制。目前在 FFOS phone v2.2 和更高版本 上,只有 VolumeUpVolumeDown 关键事件会被分派到应用程序中。

在 FFOS 2.2 及更高版本 上,任何应用程序都可以侦听音量增大和音量减小按钮的 keydownkeyup 事件。 发送给处理程序的事件是常规的 KeyboardEvents(与桌面浏览器中的相同)。当用户按下降低音量或提高音量时,具有 .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);