35 lines
882 B
JavaScript
35 lines
882 B
JavaScript
|
class VideoViewer {
|
||
|
viewer = null;
|
||
|
file = null;
|
||
|
next = null;
|
||
|
|
||
|
vidContainer = null;
|
||
|
vidElement = null;
|
||
|
videoSource = null;
|
||
|
|
||
|
constructor(viewer, file, next) {let vv = this;
|
||
|
vv.viewer = viewer;
|
||
|
vv.file = file;
|
||
|
vv.next = next;
|
||
|
|
||
|
vv.vidContainer = document.createElement("div");
|
||
|
vv.vidContainer.classList = "image-container";
|
||
|
|
||
|
vv.vidElement = document.createElement("video");
|
||
|
vv.vidElement.autoplay = "autoplay";
|
||
|
vv.vidElement.controls = "controls";
|
||
|
vv.vidElement.classList = "center drop-shadow";
|
||
|
vv.vidElement.addEventListener("ended", () => { vv.next(); }, false);
|
||
|
|
||
|
vv.videoSource = document.createElement("source");
|
||
|
vv.videoSource.src = apiEndpoint+"/file/"+vv.file.id;
|
||
|
|
||
|
vv.vidElement.appendChild(vv.videoSource);
|
||
|
vv.vidContainer.appendChild(vv.vidElement);
|
||
|
}
|
||
|
|
||
|
render(parent) {let vv = this;
|
||
|
parent.appendChild(vv.vidContainer);
|
||
|
}
|
||
|
}
|