diff --git a/webroot/js/player.js b/webroot/js/player.js index 46fd84f..3c6c7f8 100644 --- a/webroot/js/player.js +++ b/webroot/js/player.js @@ -8,6 +8,18 @@ window.addEventListener('DOMContentLoaded', (event) => { const audio = document.getElementById('player_audio'); const movie = document.getElementById('movie_player'); + const searchParams = new URLSearchParams(window.location.search.slice(1)) + let startTime = 0; + + if (searchParams.get("t")) { + const [, hours, minutes, seconds] = /^(?:(?:([0-9]+)[h:])?(?:([0-9]+)[m:]))?([0-9]+)s?$/.exec(searchParams.get("t")); + if (hours) startTime = parseInt(hours, 10) * 3600; + if (minutes) startTime += parseInt(minutes, 10) * 60; + if (seconds) startTime += parseInt(seconds, 10); + } + + console.log(startTime); + loopInput.checked = false; formats = JSON.parse(document.getElementById('yt_formats').innerText) @@ -196,9 +208,18 @@ window.addEventListener('DOMContentLoaded', (event) => { localStorage.removeItem("audioStream"); } - function seekRelative(v) { + function seekAbsolute(t) { video.pause(); - video.currentTime=video.currentTime+v; + video.currentTime=t; + if(audio) { + audio.pause(); + audio.currentTime=t; + } + } + + function seekRelative(t) { + video.pause(); + video.currentTime=video.currentTime+t; if(audio) { audio.pause(); audio.currentTime=video.currentTime; @@ -345,6 +366,8 @@ window.addEventListener('DOMContentLoaded', (event) => { document.querySelector('.html5-video-container').addEventListener('mousemove', (e) => handleMouse("frame", e)); controlbar.addEventListener('mousemove', (e) => handleMouse("controls", e)); + seekAbsolute(startTime); + if(localStorage.getItem("autoplay") == "true") { toggleVideo(true); document.querySelector('#autoplayInput').checked = true;