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
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,17 +251,21 @@ export function setupAudio(store: Store<any>, 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 = () => {
if (isFinite(audio.duration)) {
store.commit('player/setDuration', audio.duration)
}
}
audio.onerror = () => {
store.commit('player/setPaused')
store.commit('setError', audio.error)