From 2d602235813d3d2546b94dcfebc611fd12b85db6 Mon Sep 17 00:00:00 2001 From: sentriz Date: Wed, 24 Mar 2021 13:30:13 +0000 Subject: [PATCH] Fallback to tag duration to when calculating progress --- src/player/store.ts | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/player/store.ts b/src/player/store.ts index c57b896..bf589b1 100644 --- a/src/player/store.ts +++ b/src/player/store.ts @@ -87,6 +87,7 @@ export const playerModule: Module = { state.scrobbled = false const track = state.queue[index] audio.src = track.url + state.duration = track.duration document.title = `${track.title} • ${track.artist}` if (mediaSession) { mediaSession.metadata = new MediaMetadata({ @@ -250,16 +251,20 @@ export function setupAudio(store: Store, api: API) { store.commit('player/setCurrentTime', audio.currentTime) // Scrobble - if (store.state.player.scrobbled === false && - audio.duration > 30 && - audio.currentTime / audio.duration > 0.7) { + if ( + store.state.player.scrobbled === false && + store.state.player.duration > 30 && + audio.currentTime / store.state.player.duration > 0.7 + ) { const id = store.getters['player/trackId'] store.commit('player/setScrobbled') api.scrobble(id) } } audio.ondurationchange = () => { - store.commit('player/setDuration', audio.duration) + if (isFinite(audio.duration)) { + store.commit('player/setDuration', audio.duration) + } } audio.onerror = () => { store.commit('player/setPaused')