diff --git a/src/main/base/wsapi.ts b/src/main/base/wsapi.ts index 95d2b521..bbda8716 100644 --- a/src/main/base/wsapi.ts +++ b/src/main/base/wsapi.ts @@ -182,7 +182,8 @@ export class wsapi { response.message = "Unmuted"; break; case "next": - this._win.webContents.executeJavaScript(`MusicKit.getInstance().skipToNextItem()`); + this._win.webContents.executeJavaScript(`if (MusicKit.getInstance().queue.nextPlayableItemIndex != -1) { + MusicKit.getInstance().changeToMediaAtIndex(MusicKit.getInstance().queue.nextPlayableItemIndex);}`); response.message = "Next"; break; case "previous": diff --git a/src/preload/cider-preload.js b/src/preload/cider-preload.js index f6317878..7afff035 100644 --- a/src/preload/cider-preload.js +++ b/src/preload/cider-preload.js @@ -127,7 +127,9 @@ const MusicKitInterop = { }, next: () => { - MusicKit.getInstance().skipToNextItem().then(r => console.log(`[MusicKitInterop.next] Skipping to Next ${r}`)); + if (MusicKit.getInstance().queue.nextPlayableItemIndex != -1) + MusicKit.getInstance().changeToMediaAtIndex(MusicKit.getInstance().queue.nextPlayableItemIndex); + // MusicKit.getInstance().skipToNextItem().then(r => console.log(`[MusicKitInterop.next] Skipping to Next ${r}`)); }, previous: () => { diff --git a/src/renderer/index.js b/src/renderer/index.js index 08251c58..10cf8a22 100644 --- a/src/renderer/index.js +++ b/src/renderer/index.js @@ -3730,6 +3730,11 @@ const app = new Vue({ if (sellang.startsWith("en") && this.mk.storefrontId != "us") sellang = "en-gb" return await sellang } + }, + skipToNextItem(){ + // app.mk.skipToNextItem() is buggy somehow so use this + if (this.mk.queue.nextPlayableItemIndex != -1) + this.mk.changeToMediaAtIndex(this.mk.queue.nextPlayableItemIndex); } } }) diff --git a/src/renderer/views/app/sidebar.ejs b/src/renderer/views/app/sidebar.ejs index 7a7fae6f..4cae1592 100644 --- a/src/renderer/views/app/sidebar.ejs +++ b/src/renderer/views/app/sidebar.ejs @@ -137,7 +137,7 @@