From 145956c69371bb5e9d899cada820a1d78ea2a269 Mon Sep 17 00:00:00 2001 From: elvistony Date: Thu, 10 Oct 2024 11:24:13 +0100 Subject: [PATCH] Few more tweaks --- admin/index.html | 9 +- assets/css/flix.css | 11 ++ assets/video/waiting.mp4 | Bin 0 -> 48351 bytes bundle.js | 212 ++++++++++++++++++++------------------- play/index.html | 8 +- 5 files changed, 131 insertions(+), 109 deletions(-) create mode 100644 assets/video/waiting.mp4 diff --git a/admin/index.html b/admin/index.html index 0e04e06..50fe541 100644 --- a/admin/index.html +++ b/admin/index.html @@ -14,10 +14,17 @@
SYNC
+ +
+
+

Viewers

+
Playback Controls
- +
diff --git a/assets/css/flix.css b/assets/css/flix.css index d9b96a3..616d3ea 100644 --- a/assets/css/flix.css +++ b/assets/css/flix.css @@ -134,4 +134,15 @@ body { .control-button-mini{ width: 50px !important; height: 50px !important; +} + +.start-container { + display: flex; + justify-content: center; + align-items: center; + height: 100vh; +} +.start-button { + padding: 10px 20px; + font-size: 18px; } \ No newline at end of file diff --git a/assets/video/waiting.mp4 b/assets/video/waiting.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..c699de0cd0c652d64e058dd818eea2aa6d340238 GIT binary patch literal 48351 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 literal 0 HcmV?d00001 diff --git a/bundle.js b/bundle.js index 8269cb8..7a49471 100644 --- a/bundle.js +++ b/bundle.js @@ -1,18 +1,16 @@ (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i { console.log(`Connected to ${peer.id}`); - Peers[peer.id] = Object.assign({},peer_template); + + if(peer==undefined || peer.id==null){ return } + Peers[peer.id] = {...peer_template} Peers[peer.id].peer = peer; - // Change status to green - statusLed.style.backgroundColor = 'green'; - statusText.innerText = `Connected to peer: ${peer.id}`; // Send BingePack ping(bingePack,'bingepack'); - videoplayer.setAttribute("src", bingePack.video); - - ping({position:videoplayer.currentTime},'seek'); - - - }); p2pt.on('peerclose', (peer) => { delete Peers[peer.id] console.log(`Disconnected from ${peer.id}`); - if(Object.keys(Peers).length==0){ - // Change status to red - statusLed.style.backgroundColor = 'red'; - statusText.innerText = 'Not connected to any peer'; - } + // if(Object.keys(Peers).length==0){ } // LED goes RED }); p2pt.on('msg', (peer, msg) => { - console.log('RECEIVE:',peer,msg) + // console.log('RECEIVE:',peer,msg) const data = JSON.parse(msg); - - // if (data.type === 'sync' && !isHost) { - // // Sync video playback - // videoPlayer.currentTime = data.currentTime; - // if (data.isPlaying) { - // videoPlayer.play(); - // } else { - // videoPlayer.pause(); - // } - // } - if(data.type == "bingepack"){ - // playerInstance.load([{ - // file: data.video, - // image: data.image, - // title: data.title, - // description: data.desc - // }]); - console.log('Binge Pack Recieved'); - videoplayer.setAttribute("src", data.video); - bingePack = data; - } - if(data.from == selfId){ - return; + if(data.type == "welcomeBingePack"){ + if(bingePack.unset){ + console.log('Setting New Bingepack'); + bingePack = data; + bingePack.unset=false; + videoplayer.setAttribute("src", bingePack.video); + }else{console.log('Already received Welcome Bingepack');} } - if(data.type == "play"){ - // playerInstance.play(); - videoplayer.play() - } - if(data.type == "pause"){ - // playerInstance.pause(); - videoplayer.pause() + if(data.type == "forceBingePack"){ + console.log('Forced Binge Pack Recieved'); + bingePack.unset=false; + bingePack = data; + videoplayer.setAttribute("src", bingePack.video); + } + if(data.from == selfId){ return; } + if(data.type == "play"){ videoplayer.play(); } + if(data.type == "pause"){ videoplayer.pause() } if(data.type == "seek"){ - if(!seekCooldown){ - seekCooldown=true - startSeekCooldown(5); - } - // playerInstance.seek(data.position); - videoplayer.currentTime = data.position; + if(!seekCooldown){ startSeekCooldown(5); } + // videoplayer.currentTime = data.position; + seeker(data.position) videoplayer.pause(); - } - + } }); p2pt.start() - - // End of Application Code } function startSeekCooldown(duration){ + clearTimeout(seekCooldownTimeout); seekCooldown = true; - setTimeout(()=>{ + seekCooldownTimeout = setTimeout(()=>{ seekCooldown=false; },duration) } function ping(data,type){ - console.log('SEND:',data,type); - Object.keys(Peers).forEach(peer => { - console.log('SEND TO PEER:',peer); - data['from'] = selfId; - data['type'] = type - p2pt.send(Peers[peer].peer, JSON.stringify(data)); - Peers[peer.id] = Object.assign({},peer_template); - Peers[peer.id].peer = peer; - console.log(Peers); - }); - + Object.keys(Peers).forEach(peer => { + data['from'] = selfId; + data['type'] = type + p2pt.send(Peers[peer].peer, JSON.stringify(data)); + }); } videoplayer.addEventListener('pause', (event) => { - console.log('Broadcasting Pause!'); + // console.log('Broadcasting Pause!'); ping({},'pause') }); videoplayer.addEventListener('play', (event) => { - console.log('Broadcasting Play!'); + // console.log('Broadcasting Play!'); ping({},'play') }); videoplayer.addEventListener('complete', (event) => { - console.log('Broadcasting Finish!'); + // console.log('Broadcasting Finish!'); ping({},'complete') }); @@ -173,7 +136,6 @@ videoplayer.addEventListener('seek', (event) => { videoplayer.pause(); }); - videoplayer.addEventListener('seeked', (event) => { if(!seekCooldown){ position = videoplayer.currentTime; @@ -182,37 +144,77 @@ videoplayer.addEventListener('seeked', (event) => { } }); +videoplayer.addEventListener('canplaythrough',()=>{ + // ping({'ready':true},'ready'); + // document.querySelector('.start-container').style.display='none'; +}) + +document.querySelector('.start-button').addEventListener('click',()=>{ + videoplayer.muted=false; + // videoplayer.buffer(); + document.querySelector('.start-container').style.display='none'; + ping({'ready':true},'ready'); +}) -var adminVideoChange = document.getElementById('fire-video-change'); +var adminVideoChange = document.getElementById('fire-video-change'); adminVideoChange.addEventListener('click',()=>{ var url = document.getElementById('VideoURL').value; var title = document.getElementById('VideoTitle').value; pack = { ...bingePack } pack['video'] = url; pack['title'] = title; - ping(pack,'bingepack') + ping(pack,'forceBingePack') }) +function isIOSDevice() { + return /iPad|iPhone|iPod/.test(navigator.userAgent); +} -var adminSyncPlayback = document.getElementById('sync-playback'); - -adminSyncPlayback.addEventListener('click',()=>{ - - videoplayer.setAttribute('src',bingePack.video); +function seeker(X){ + if(!isIOSDevice()) { + videoplayer.currentTime = X; + } else { + // function trackTo(evt) { + // evt.target.currentTime = X; + // evt.target.removeEventListener("loadeddata", trackTo) + // } + // videoplayer.addEventListener("loadeddata", trackTo); + videoplayer.fastSeek(X) + } +} + + +// var adminSyncPlayback = document.getElementById('sync-playback'); +// adminSyncPlayback.addEventListener('click',()=>{ +// adminSyncPlayback.setAttribute('disabled',true); +// position = videoplayer.currentTime; +// ping({},'pause'); +// videoplayer.pause() +// ping({position:position},'seek'); +// setTimeout(()=>{ +// ping({position:position},'play'); +// videoplayer.play(); +// adminSyncPlayback.setAttribute('disabled',false); +// },3000); +// }) + + + +// var adminBingePackResend = document.getElementById('binge-package'); +// adminBingePackResend.addEventListener('click',()=>{ +// videoplayer.setAttribute('src',bingePack.video); +// adminBingePackResend.setAttribute('disabled',true); +// ping({},'pause'); +// videoplayer.pause() +// ping(bingePack,'forceBingePack') +// setTimeout(()=>{ +// ping({position:position},'play'); +// videoplayer.play(); +// adminBingePackResend.removeAttribute('disabled'); +// },3000); +// }) - adminSyncPlayback.setAttribute('disabled',true); - position = videoplayer.currentTime; - - ping({},'pause'); - videoplayer.pause() - ping({position:position},'seek'); - setTimeout(()=>{ - ping({position:position},'play'); - videoplayer.play(); - adminSyncPlayback.setAttribute('disabled',false); - },3000); -}) // playerInstance.on("ready", function () { // const buttonId = "upload-link"; diff --git a/play/index.html b/play/index.html index f23a1ba..60d9d85 100644 --- a/play/index.html +++ b/play/index.html @@ -8,7 +8,9 @@ - +
+ +
@@ -26,8 +28,8 @@ -