back button & media keys improvement
This commit is contained in:
parent
99425e65c3
commit
bb8e22cf93
3 changed files with 19 additions and 2 deletions
|
@ -183,7 +183,10 @@ export class wsapi {
|
||||||
break;
|
break;
|
||||||
case "next":
|
case "next":
|
||||||
this._win.webContents.executeJavaScript(`if (MusicKit.getInstance().queue.nextPlayableItemIndex != -1 && MusicKit.getInstance().queue.nextPlayableItemIndex != null) {
|
this._win.webContents.executeJavaScript(`if (MusicKit.getInstance().queue.nextPlayableItemIndex != -1 && MusicKit.getInstance().queue.nextPlayableItemIndex != null) {
|
||||||
MusicKit.getInstance().changeToMediaAtIndex(MusicKit.getInstance().queue.nextPlayableItemIndex);}`);
|
try {
|
||||||
|
app.prevButtonBackIndicator = false;
|
||||||
|
} catch (e) { }
|
||||||
|
MusicKit.getInstance().changeToMediaAtIndex(MusicKit.getInstance().queue.nextPlayableItemIndex);}`);
|
||||||
response.message = "Next";
|
response.message = "Next";
|
||||||
break;
|
break;
|
||||||
case "previous":
|
case "previous":
|
||||||
|
|
|
@ -136,6 +136,9 @@ const MusicKitInterop = {
|
||||||
},
|
},
|
||||||
|
|
||||||
next: () => {
|
next: () => {
|
||||||
|
try {
|
||||||
|
app.prevButtonBackIndicator = false;
|
||||||
|
} catch (e) { }
|
||||||
if (MusicKit.getInstance().queue.nextPlayableItemIndex != -1 && MusicKit.getInstance().queue.nextPlayableItemIndex != null)
|
if (MusicKit.getInstance().queue.nextPlayableItemIndex != -1 && MusicKit.getInstance().queue.nextPlayableItemIndex != null)
|
||||||
MusicKit.getInstance().changeToMediaAtIndex(MusicKit.getInstance().queue.nextPlayableItemIndex);
|
MusicKit.getInstance().changeToMediaAtIndex(MusicKit.getInstance().queue.nextPlayableItemIndex);
|
||||||
// MusicKit.getInstance().skipToNextItem().then(r => console.log(`[MusicKitInterop.next] Skipping to Next ${r}`));
|
// MusicKit.getInstance().skipToNextItem().then(r => console.log(`[MusicKitInterop.next] Skipping to Next ${r}`));
|
||||||
|
|
|
@ -250,7 +250,8 @@ const app = new Vue({
|
||||||
items: {},
|
items: {},
|
||||||
headerItems: {}
|
headerItems: {}
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
|
pauseButtonTimer : null
|
||||||
},
|
},
|
||||||
watch: {
|
watch: {
|
||||||
cfg: {
|
cfg: {
|
||||||
|
@ -813,6 +814,8 @@ const app = new Vue({
|
||||||
this.page = "home"
|
this.page = "home"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
this.mediaKeyFixes()
|
||||||
|
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
this.getSocialBadges()
|
this.getSocialBadges()
|
||||||
this.getBrowsePage();
|
this.getBrowsePage();
|
||||||
|
@ -1355,8 +1358,11 @@ const app = new Vue({
|
||||||
prevButton() {
|
prevButton() {
|
||||||
if (!app.prevButtonBackIndicator && app.mk.nowPlayingItem && app.mk.currentPlaybackTime > 2) {
|
if (!app.prevButtonBackIndicator && app.mk.nowPlayingItem && app.mk.currentPlaybackTime > 2) {
|
||||||
app.prevButtonBackIndicator = true;
|
app.prevButtonBackIndicator = true;
|
||||||
|
try{clearTimeout(app.pauseButtonTimer)} catch (e){ }
|
||||||
app.mk.seekToTime(0);
|
app.mk.seekToTime(0);
|
||||||
|
app.pauseButtonTimer = setTimeout(app.prevButtonBackIndicator = false,3000);
|
||||||
} else {
|
} else {
|
||||||
|
try{clearTimeout(app.pauseButtonTimer)} catch (e){ }
|
||||||
app.prevButtonBackIndicator = false;
|
app.prevButtonBackIndicator = false;
|
||||||
app.skipToPreviousItem()
|
app.skipToPreviousItem()
|
||||||
}
|
}
|
||||||
|
@ -3743,6 +3749,7 @@ const app = new Vue({
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
skipToNextItem(){
|
skipToNextItem(){
|
||||||
|
app.prevButtonBackIndicator = false;
|
||||||
// app.mk.skipToNextItem() is buggy somehow so use this
|
// app.mk.skipToNextItem() is buggy somehow so use this
|
||||||
if (this.mk.queue.nextPlayableItemIndex != -1 && this.mk.queue.nextPlayableItemIndex != null)
|
if (this.mk.queue.nextPlayableItemIndex != -1 && this.mk.queue.nextPlayableItemIndex != null)
|
||||||
this.mk.changeToMediaAtIndex(this.mk.queue.nextPlayableItemIndex);
|
this.mk.changeToMediaAtIndex(this.mk.queue.nextPlayableItemIndex);
|
||||||
|
@ -3751,6 +3758,10 @@ const app = new Vue({
|
||||||
// app.mk.skipToPreviousItem() is buggy somehow so use this
|
// app.mk.skipToPreviousItem() is buggy somehow so use this
|
||||||
if (this.mk.queue.previousPlayableItemIndex != -1 && this.mk.queue.previousPlayableItemIndex != null)
|
if (this.mk.queue.previousPlayableItemIndex != -1 && this.mk.queue.previousPlayableItemIndex != null)
|
||||||
this.mk.changeToMediaAtIndex(this.mk.queue.previousPlayableItemIndex);
|
this.mk.changeToMediaAtIndex(this.mk.queue.previousPlayableItemIndex);
|
||||||
|
},
|
||||||
|
mediaKeyFixes(){
|
||||||
|
navigator.mediaSession.setActionHandler('previoustrack', function() { app.prevButton() });
|
||||||
|
navigator.mediaSession.setActionHandler('nexttrack', function() { app.skipToNextItem() });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue