2016-09-21 6 views
1

Meine Computertastatur hat, wie viele moderne Tasten, eine Taste zum Abspielen/Anhalten von Musik. Es funktioniert mit vielen Anwendungen wie dem nativen Spotify-Player, dem Google Music-Webplayer, ITunes usw. Einige davon sind nativ, andere befinden sich in einem Browser. Die Schaltfläche funktioniert auch, wenn das Programm (oder die Registerkarte des Browsers) nicht im Fokus ist. Wie greifen diese Programme in diese Funktionalität ein?Wie funktioniert die Wiedergabe/Pause-Taste auf der Tastatur?

Ich gehe davon aus, dass es etwas funktioniert wie folgt, aber das ist nur eine Vermutung:

  1. Web App registriert einen Tonkanal mit dem Browser, einige Rückrufe für die Bereitstellung von Pause/Play/Stop, usw.
  2. Browser registriert seinen Tonkanal mit dem Betriebssystem, einige Callback-Funktionen bereitstellt
  3. Pause-Taste auf der Tastatur
  4. OS ruft einen Rückruf für den registrierten Tonkanal
  5. Browsers gedrückt na tive Rückruf ruft die Funktion Javascript Rückruf Web-App, die die Pause

(Und für native Anwendungen, die Umleitung über den Browser wäre übersprungenen)

Antwort

0

Ich denke, Sie Windows bedeuten ausführt. Die Antwort ist mehr oder weniger die gleiche über Betriebssysteme, ich werde Windows-spezifische Referenzen hier hinweisen.

Sie sind nicht so besonders, wie Sie scheinen, sie sind. Sie sind Standard-Tastaturtasten und sogar have constants in the Windows API (suchen Sie nach VK_MEDIA_, VK_LAUNCH_, VK_BROWSER_, usw.).

Die Tastatur-Hardware sendet sendet Scan-Codes für diese Tasten an das Betriebssystem wie normale Tasten.

Programme können global nach Tastaturereignissen mithilfe eines Windows-Hooks mit SetWindowsHookEx (siehe WH_KEYBOARD) abhören.

Browser können diese Schlüssel freisetzen oder nicht. Browser können keydown und keyup Ereignisse an Elemente mit Raw-Scan-Codes senden, daher gibt es keinen Grund, warum es nicht möglich ist, sie auf einer Webseite zu erkennen. Ein Windows-Hook kann diese Schlüssel herausfiltern, so dass sie den Browserprozess möglicherweise nicht erreichen. Sie können es versuchen, indem Sie eine dieser Tasten mit Ihrem Cursor in der "Versuchen Sie es!" Feld, auf this page.

+0

Oh mein Gott, du hast Recht es ist so viel einfacher als ich mir vorgestellt habe :) Danke! – bigpopakap

Verwandte Themen