diff --git a/src/main/base/store.ts b/src/main/base/store.ts index d076924b..69208a4e 100644 --- a/src/main/base/store.ts +++ b/src/main/base/store.ts @@ -133,7 +133,7 @@ export class Store { "maxVolume": 1, "lastVolume": 1, "muted": false, - "playbackRate": '1', + "playbackRate": 1, "quality": "HIGH", "seamless_audio": true, "normalization": false, diff --git a/src/preload/cider-preload.js b/src/preload/cider-preload.js index f5cc6dd2..75a4af44 100644 --- a/src/preload/cider-preload.js +++ b/src/preload/cider-preload.js @@ -39,8 +39,7 @@ const MusicKitInterop = { } if (MusicKit.getInstance().nowPlayingItem) { - await this.sleep(1000); - console.log("Auto-updating Playback Rate from " + MusicKit.getInstance().playbackRate + " x to " + app.cfg.audio.playbackRate + " x"); + await this.sleep(750); MusicKit.getInstance().playbackRate = app.cfg.audio.playbackRate; } }); diff --git a/src/renderer/views/components/audio-playbackrate.ejs b/src/renderer/views/components/audio-playbackrate.ejs index 814d57a5..0e86d0ca 100644 --- a/src/renderer/views/components/audio-playbackrate.ejs +++ b/src/renderer/views/components/audio-playbackrate.ejs @@ -15,7 +15,7 @@ {{playbackRate}} ×
- +
@@ -34,10 +34,26 @@ }, watch: { playbackRate: function (newValue, _oldValue) { - this.$root.mk.playbackRate = newValue - this.$root.cfg.audio.playbackRate = newValue - this.playbackRate = newValue + this.saveValue(newValue); } - } + }, + methods: { + playbackRateWheel(event) { + if (app.checkScrollDirectionIsUp(event)) { + this.saveValue(this.$root.cfg.audio.playbackRate + 0.05); + } else { + this.saveValue(this.$root.cfg.audio.playbackRate - 0.05); + } + }, + saveValue(newValue) { + newValue = Number(newValue); + if (newValue >= 0.25 && newValue <= 2) { + newValue = String(newValue).length > 4 ? newValue.toFixed(2) : newValue; + this.$root.mk.playbackRate = newValue; + this.$root.cfg.audio.playbackRate = newValue; + this.playbackRate = newValue; + } + } + } }); - \ No newline at end of file +