Improved audio player UX (status messages)
This commit is contained in:
parent
51e95e45cf
commit
ac2ec39fd0
@ -91,11 +91,17 @@ export default class AudioPlayer {
|
|||||||
// without any error and also wouldn't work on audio source changes.
|
// without any error and also wouldn't work on audio source changes.
|
||||||
this.gainNode.connect(this.audioContext.destination)
|
this.gainNode.connect(this.audioContext.destination)
|
||||||
|
|
||||||
|
// Show status message
|
||||||
|
this.arn.statusMessage.showInfo("Decoding audio...", -1)
|
||||||
|
|
||||||
this.audioContext.decodeAudioData(request.response, async buffer => {
|
this.audioContext.decodeAudioData(request.response, async buffer => {
|
||||||
if(currentPlayId !== this.playId) {
|
if(currentPlayId !== this.playId) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Close status message
|
||||||
|
this.arn.statusMessage.showInfo(`Playing "${this.trackLink.textContent}"`)
|
||||||
|
|
||||||
// Mark as ready
|
// Mark as ready
|
||||||
this.audioPlayer.classList.add("decoded")
|
this.audioPlayer.classList.add("decoded")
|
||||||
|
|
||||||
@ -115,10 +121,22 @@ export default class AudioPlayer {
|
|||||||
}, console.error)
|
}, console.error)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
request.onprogress = e => {
|
||||||
|
if(!e.lengthComputable) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
let progress = e.loaded / e.total * 100
|
||||||
|
this.arn.statusMessage.showInfo(`Loading audio...${progress.toFixed(1)}%`, -1)
|
||||||
|
}
|
||||||
|
|
||||||
request.onerror = () => {
|
request.onerror = () => {
|
||||||
this.arn.loading(false)
|
this.arn.loading(false)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Show status message
|
||||||
|
this.arn.statusMessage.showInfo("Loading audio...", -1)
|
||||||
|
|
||||||
this.lastRequest = request
|
this.lastRequest = request
|
||||||
request.send()
|
request.send()
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user