add video player
This commit is contained in:
parent
5622d2bee4
commit
9bddacf1ef
4 changed files with 59 additions and 3 deletions
|
@ -8,6 +8,7 @@ body {
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
|
||||||
overflow-y: auto;
|
overflow-y: auto;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
:root {
|
:root {
|
||||||
|
@ -120,6 +121,7 @@ video {
|
||||||
width: 190px;
|
width: 190px;
|
||||||
margin-left: 5px;
|
margin-left: 5px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.video {
|
.video {
|
||||||
width: 200px;
|
width: 200px;
|
||||||
height: 200px;
|
height: 200px;
|
||||||
|
@ -132,10 +134,28 @@ video {
|
||||||
justify-content: space-around;
|
justify-content: space-around;
|
||||||
}
|
}
|
||||||
|
|
||||||
.videos a{
|
.videos a {
|
||||||
color: var(--dark-1);
|
color: var(--dark-1);
|
||||||
}
|
}
|
||||||
|
|
||||||
textarea {
|
textarea {
|
||||||
display: block;
|
display: block;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#progressbar {
|
||||||
|
background-color: var(--light-1);
|
||||||
|
border: solid var(--dark-2) 2px;
|
||||||
|
border-radius: 13px;
|
||||||
|
padding: 3px;
|
||||||
|
margin: 0;
|
||||||
|
position: relative;
|
||||||
|
top: -40px;
|
||||||
|
width: 680px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#progressbar>div {
|
||||||
|
background-color: var(--light-2);
|
||||||
|
width: 40%;
|
||||||
|
height: 20px;
|
||||||
|
border-radius: 10px;
|
||||||
|
}
|
|
@ -19,6 +19,37 @@ async function formClick(ev) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function moveBar(e, bar, vid) {
|
||||||
|
let rect = bar.getBoundingClientRect();
|
||||||
|
let prog = ((e.pageX - rect.x) / rect.width);
|
||||||
|
|
||||||
|
vid.currentTime = prog * vid.duration;
|
||||||
|
}
|
||||||
|
|
||||||
|
function prog(vid, bar) {
|
||||||
|
bar.querySelector('div').style.width = `${vid.currentTime / vid.duration * 100}%`;
|
||||||
|
}
|
||||||
|
|
||||||
|
function controls(vid) {
|
||||||
|
let bar = vid.querySelector('#progressbar');
|
||||||
|
let video = vid.querySelector('video');
|
||||||
|
|
||||||
|
video.onclick = () => {
|
||||||
|
if (video.paused) {
|
||||||
|
video.play();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
video.pause();
|
||||||
|
}
|
||||||
|
|
||||||
|
bar.onclick = (e) => moveBar(e, bar, video);
|
||||||
|
|
||||||
|
video.addEventListener('timeupdate', () => prog(video,bar));
|
||||||
|
}
|
||||||
|
|
||||||
window.onload = function () {
|
window.onload = function () {
|
||||||
document.addEventListener('submit', formClick);
|
document.addEventListener('submit', formClick);
|
||||||
|
for (let vid of document.querySelectorAll('#video')) {
|
||||||
|
controls(vid);
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -1,5 +1,5 @@
|
||||||
<div class='header'>
|
<div class='header'>
|
||||||
<img src='/static/img/logo.svgg'>
|
<img src='/static/img/logo.svg'>
|
||||||
<a href='/'>BiglyChat</a>
|
<a href='/'>BiglyChat</a>
|
||||||
<%if (username=='!nobody' ) { %>
|
<%if (username=='!nobody' ) { %>
|
||||||
<a href="/client/login">Login</a>
|
<a href="/client/login">Login</a>
|
||||||
|
|
|
@ -1,7 +1,12 @@
|
||||||
<%- include('header.ejs') -%>
|
<%- include('header.ejs') -%>
|
||||||
<div class='area'>
|
<div class='area'>
|
||||||
<h1>Video</h1>
|
<h1>Video</h1>
|
||||||
<video controls src='/videos/<%= videoData.id %>.webm'></video>
|
<div id='video'>
|
||||||
|
<video src='/videos/<%= videoData.id %>.webm'></video>
|
||||||
|
<div id="progressbar">
|
||||||
|
<div></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<div><b>
|
<div><b>
|
||||||
<%= videoData.title %>
|
<%= videoData.title %>
|
||||||
</b>
|
</b>
|
||||||
|
|
Loading…
Reference in a new issue