diff --git a/src/main/plugins/mpris.ts b/src/main/plugins/mpris.ts index 15e08cdf..bfc0f6ef 100644 --- a/src/main/plugins/mpris.ts +++ b/src/main/plugins/mpris.ts @@ -71,6 +71,9 @@ export default class mpris { player.on("position", (args: { position: any }) => mpris.utils.playback.seek(args.position / 1000 / 1000)); player.on("loopStatus", (status: string) => renderer.executeJavaScript(`app.mk.repeatMode = ${loopType[status.toLowerCase()]}`)); player.on("shuffle", () => renderer.executeJavaScript("app.mk.shuffleMode = (app.mk.shuffleMode === 0) ? 1 : 0")); + player.on("volume", (volume: string) => { + renderer.executeJavaScript(`app.mk.volume = ${parseFloat(volume)}`); + }); mpris.utils.getIPCMain().on("mpris:playbackTimeDidChange", (event: any, time: number) => { player.getPosition = () => time; @@ -90,6 +93,10 @@ export default class mpris { } }); + mpris.utils.getIPCMain().on("mpris:volumeChange", (_e: any, volume: number) => { + player.volume = volume; + }) + mpris.utils.getIPCMain().on("shuffleModeDidChange", (_e: any, mode: number) => { player.shuffle = mode === 1; }); diff --git a/src/renderer/main/vueapp.js b/src/renderer/main/vueapp.js index 9e9f9955..67af789e 100644 --- a/src/renderer/main/vueapp.js +++ b/src/renderer/main/vueapp.js @@ -1233,6 +1233,7 @@ const app = new Vue({ this.mk.addEventListener(MusicKit.Events.playbackVolumeDidChange, (_a) => { this.cfg.audio.volume = this.mk.volume; + ipcRenderer.send("mpris:volumeChange", this.mk.volume); }); this.refreshPlaylists(this.isDev);