2016-09-21 4 views
1

Моя компьютерная клавиатура, как и многие современные, имеет кнопку для воспроизведения/паузы музыки. Он работает со многими приложениями, такими как родной проигрыватель Spotify, веб-проигрыватель Google Music, ITunes и т. Д. Некоторые из них являются родными, а некоторые - в браузере. Кнопка работает, даже если программа (или вкладка браузера) не находится в фокусе. Как эти программы подключаются к этой функции?Как работает кнопка воспроизведения/паузы на клавиатуре?

Я ожидаю, что он работает примерно так, но это только предположение:

  1. Веб-приложение регистрирует звуковой канал с браузером, предоставляя некоторые функции обратного вызова для паузы/воспроизведения/остановки и т.д.
  2. Browser регистрирует свой звуковой канал с операционной системой, обеспечивая некоторые функции обратного вызова
  3. кнопка Пауза нажата на клавиатуре
  4. OS вызывает функцию обратного вызова для зарегистрированного звукового канала
  5. браузера на TIVE обратного вызова вызывает функцию обратного вызова Javascript веб-приложения, которое выполняет паузе

(А для родных приложений, то окольные через браузер будет пропущена)

ответ

0

Я предполагаю, что вы имеете в виду Windows. Ответ более или менее одинаковый для всех операционных систем, здесь я укажу ссылки на Windows.

Они не такие особенные, как вы, кажется, думаете, что они есть. Они являются стандартными клавишами клавиатуры и даже have constants in the Windows API (ищите VK_MEDIA_, VK_LAUNCH_, VK_BROWSER_ и т. Д.).

Аппаратное обеспечение клавиатуры отправляет коды сканирования для этих ключей в операционную систему, как обычные клавиши.

Программы могут прослушивать события клавиатуры глобально, используя крючок Windows с SetWindowsHookEx (см. WH_KEYBOARD).

Браузеры могут или не могут открывать эти ключи. Браузеры могут отправлять keydown и keyup событиям на элементы с необработанными кодами сканирования, поэтому нет причин, по которым их невозможно обнаружить на веб-странице. Ключ к окну может отфильтровывать эти ключи, поэтому они могут не доходить до процесса браузера. Вы можете попробовать, нажав одну из этих клавиш с помощью курсора в поле «Попробовать!». поле, на this page.

+0

О, боже мой, ты прав, это намного проще, чем я думал :) Спасибо! – bigpopakap

Смежные вопросы