Started on error handling

This commit is contained in:
Sam
2018-01-04 13:43:56 +11:00
parent 6b9106ddb1
commit 92cb9e22e2
16 changed files with 84 additions and 12 deletions

View File

@ -153,7 +153,7 @@ const ui = {
// Check if media is loading
checkLoading(event) {
this.loading = [
this.loading = this.media.networkState === 2 || [
'stalled',
'waiting',
].includes(event.type);
@ -171,6 +171,29 @@ const ui = {
}, this.loading ? 250 : 0);
},
// Check if media failed to load
checkFailed() {
// https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/networkState
this.failed = this.media.networkState === 3;
if (this.failed) {
utils.toggleClass(this.elements.container, this.config.classNames.loading, false);
utils.toggleClass(this.elements.container, this.config.classNames.error, true);
}
// Clear timer
clearTimeout(this.timers.failed);
// Timer to prevent flicker when seeking
this.timers.loading = setTimeout(() => {
// Toggle container class hook
utils.toggleClass(this.elements.container, this.config.classNames.loading, this.loading);
// Show controls if loading, hide if done
this.toggleControls(this.loading);
}, this.loading ? 250 : 0);
},
// Update volume UI and storage
updateVolume() {
if (!this.supported.ui) {