Merge pull request #31 from sentriz/master

Fallback to tag duration to when calculating progress
This commit is contained in:
tamland 2021-03-25 19:07:32 +01:00 committed by GitHub
commit 44fdf99d70
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -87,6 +87,7 @@ export const playerModule: Module<State, any> = {
state.scrobbled = false state.scrobbled = false
const track = state.queue[index] const track = state.queue[index]
audio.src = track.url audio.src = track.url
state.duration = track.duration
document.title = `${track.title}${track.artist}` document.title = `${track.title}${track.artist}`
if (mediaSession) { if (mediaSession) {
mediaSession.metadata = new MediaMetadata({ mediaSession.metadata = new MediaMetadata({
@ -250,16 +251,20 @@ export function setupAudio(store: Store<any>, api: API) {
store.commit('player/setCurrentTime', audio.currentTime) store.commit('player/setCurrentTime', audio.currentTime)
// Scrobble // Scrobble
if (store.state.player.scrobbled === false && if (
audio.duration > 30 && store.state.player.scrobbled === false &&
audio.currentTime / audio.duration > 0.7) { store.state.player.duration > 30 &&
audio.currentTime / store.state.player.duration > 0.7
) {
const id = store.getters['player/trackId'] const id = store.getters['player/trackId']
store.commit('player/setScrobbled') store.commit('player/setScrobbled')
api.scrobble(id) api.scrobble(id)
} }
} }
audio.ondurationchange = () => { audio.ondurationchange = () => {
store.commit('player/setDuration', audio.duration) if (isFinite(audio.duration)) {
store.commit('player/setDuration', audio.duration)
}
} }
audio.onerror = () => { audio.onerror = () => {
store.commit('player/setPaused') store.commit('player/setPaused')