Skip to content

Commit b182b71

Browse files
author
Mathias Kahl
committed
support global media keys for prev, next, play, pause and stop
1 parent 539f992 commit b182b71

2 files changed

Lines changed: 37 additions & 1 deletion

File tree

index.html

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,32 @@
1717
}
1818
}, 500)
1919

20+
const ipcRenderer = require('electron').ipcRenderer;
21+
ipcRenderer.on('playback-control', function(event, arg) {
22+
var doc = document.querySelector("iframe").contentDocument
23+
24+
switch (arg) {
25+
case "MediaPlayPause":
26+
var playBtn = doc.querySelector("button.js-play")
27+
var pauseBtn = doc.querySelector("button.js-pause")
28+
if (pauseBtn.style.display == "none") playBtn.click()
29+
else pauseBtn.click()
30+
break;
31+
32+
case "MediaNextTrack":
33+
doc.querySelector("button.js-next").click();
34+
break;
35+
36+
case "MediaPreviousTrack":
37+
doc.querySelector("button.js-previous").click();
38+
break;
39+
40+
case "MediaStop":
41+
doc.querySelector("button.js-pause").click();
42+
break;
43+
}
44+
});
45+
2046
</script>
2147
</body>
2248
</html>

main.js

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,17 @@ app.on('ready', function() {
5353
mainWindow.loadUrl('file://' + __dirname + '/index.html');
5454

5555
// Emitted when the window is closed.
56-
mainWindow.on('closed', function() {
56+
mainWindow.on('closed', function() {
5757
mainWindow = null;
5858
});
59+
60+
console.log("APP READY")
61+
62+
// handle media keys
63+
var routeShortcuts = ["MediaPreviousTrack", "MediaNextTrack", "MediaPlayPause", "MediaStop"]
64+
routeShortcuts.forEach(shortcut => {
65+
globalShortcut.register(shortcut, function() {
66+
mainWindow.webContents.send("playback-control", shortcut)
67+
})
68+
})
5969
});

0 commit comments

Comments
 (0)