Fallback to tag duration to when calculating progress
This commit is contained in:
parent
2fc640c34b
commit
2d60223581
@ -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,17 +251,21 @@ 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 = () => {
|
||||||
|
if (isFinite(audio.duration)) {
|
||||||
store.commit('player/setDuration', audio.duration)
|
store.commit('player/setDuration', audio.duration)
|
||||||
}
|
}
|
||||||
|
}
|
||||||
audio.onerror = () => {
|
audio.onerror = () => {
|
||||||
store.commit('player/setPaused')
|
store.commit('player/setPaused')
|
||||||
store.commit('setError', audio.error)
|
store.commit('setError', audio.error)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user