aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--resources/media-controls.js95
1 files changed, 58 insertions, 37 deletions
diff --git a/resources/media-controls.js b/resources/media-controls.js
index 323fa73316d..6ee15015810 100644
--- a/resources/media-controls.js
+++ b/resources/media-controls.js
@@ -28,26 +28,26 @@
// State transitions.
const TRANSITIONS = {
buffer: {
- "paused": BUFFERING,
+ paused: BUFFERING
},
end: {
- "playing": ENDED,
- "paused": ENDED,
+ playing: ENDED,
+ paused: ENDED
},
error: {
- "buffering": ERRORED,
- "playing": ERRORED,
- "paused": ERRORED,
+ buffering: ERRORED,
+ playing: ERRORED,
+ paused: ERRORED
},
pause: {
- "buffering": PAUSED,
- "playing": PAUSED,
+ buffering: PAUSED,
+ playing: PAUSED
},
play: {
- "buffering": PLAYING,
- "ended": PLAYING,
- "paused": PLAYING,
- },
+ buffering: PLAYING,
+ ended: PLAYING,
+ paused: PLAYING
+ }
};
function camelCase(str) {
@@ -62,14 +62,15 @@
time = Math.round(time / 1000);
const hours = Math.floor(time / 3600);
- const mins = Math.floor((time % 3600) / 60);
- const secs = Math.floor(time % 60);
+ const mins = Math.floor((time % 3600) / 60);
+ const secs = Math.floor(time % 60);
- const formattedHours = hours || showHours ?
- `${hours.toString().padStart(2, "0")}:` :
- "";
+ const formattedHours =
+ hours || showHours ? `${hours.toString().padStart(2, "0")}:` : "";
- return `${formattedHours}${mins.toString().padStart(2, "0")}:${secs.toString().padStart(2, "0")}`;
+ return `${formattedHours}${mins
+ .toString()
+ .padStart(2, "0")}:${secs.toString().padStart(2, "0")}`;
}
class MediaControls {
@@ -119,25 +120,25 @@
Object.defineProperties(this.elements.positionDurationBox, {
durationSpan: {
- value: durationSpan,
+ value: durationSpan
},
position: {
get: () => {
return positionTextNode.textContent;
},
- set: (v) => {
+ set: v => {
positionTextNode.textContent = positionFormat.replace("#1", v);
- },
+ }
},
duration: {
get: () => {
return durationSpan.textContent;
},
- set: (v) => {
+ set: v => {
durationSpan.textContent = v ? durationFormat.replace("#2", v) : "";
- },
+ }
},
- show:{
+ show: {
value: (currentTime, duration) => {
const self = this.elements.positionDurationBox;
if (self.position != currentTime) {
@@ -147,24 +148,39 @@
self.duration = duration;
}
self.classList.remove("hidden");
- },
- },
+ }
+ }
});
// Add event listeners.
this.mediaEvents = [
- "play", "pause", "ended", "volumechange", "loadeddata",
- "loadstart", "timeupdate", "progress", "playing",
- "waiting", "canplay", "canplaythrough", "seeking",
- "seeked", "emptied", "loadedmetadata", "error", "suspend"];
+ "play",
+ "pause",
+ "ended",
+ "volumechange",
+ "loadeddata",
+ "loadstart",
+ "timeupdate",
+ "progress",
+ "playing",
+ "waiting",
+ "canplay",
+ "canplaythrough",
+ "seeking",
+ "seeked",
+ "emptied",
+ "loadedmetadata",
+ "error",
+ "suspend"
+ ];
this.mediaEvents.forEach(event => {
this.media.addEventListener(event, this);
});
this.controlEvents = [
- { el: this.elements.playPauseButton, type: "click"},
+ { el: this.elements.playPauseButton, type: "click" },
{ el: this.elements.volumeSwitch, type: "click" },
- { el: this.elements.volumeLevel, type: "input" },
+ { el: this.elements.volumeLevel, type: "input" }
];
this.controlEvents.forEach(({ el, type }) => {
el.addEventListener(type, this);
@@ -245,7 +261,8 @@
}
// Progress.
- const positionPercent = this.media.currentTime / this.media.duration * 100;
+ const positionPercent =
+ (this.media.currentTime / this.media.duration) * 100;
if (Number.isFinite(positionPercent)) {
this.elements.progress.value = positionPercent;
} else {
@@ -262,8 +279,11 @@
this.elements.positionDurationBox.show(currentTime, duration);
// Volume.
- this.elements.volumeSwitch.className = this.media.muted || !this.media.volume ? "muted" : "volumeup";
- const volumeLevelValue = this.media.muted ? 0 : Math.round(this.media.volume * 100);
+ this.elements.volumeSwitch.className =
+ this.media.muted || !this.media.volume ? "muted" : "volumeup";
+ const volumeLevelValue = this.media.muted
+ ? 0
+ : Math.round(this.media.volume * 100);
if (this.elements.volumeLevel.value != volumeLevelValue) {
this.elements.volumeLevel.value = volumeLevelValue;
}
@@ -301,7 +321,7 @@
break;
}
break;
- break;
+ break;
throw new Error(`Unknown event ${event.type}`);
}
}
@@ -330,7 +350,7 @@
/* Media actions */
playOrPause() {
- switch(this.state) {
+ switch (this.state) {
case PLAYING:
this.media.pause();
break;
@@ -358,3 +378,4 @@
new MediaControls();
})();
+