+ URL timestamp support
This commit is contained in:
parent
58685e9b2e
commit
04e0e60cbc
|
@ -8,6 +8,18 @@ window.addEventListener('DOMContentLoaded', (event) => {
|
||||||
const audio = document.getElementById('player_audio');
|
const audio = document.getElementById('player_audio');
|
||||||
const movie = document.getElementById('movie_player');
|
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;
|
loopInput.checked = false;
|
||||||
|
|
||||||
formats = JSON.parse(document.getElementById('yt_formats').innerText)
|
formats = JSON.parse(document.getElementById('yt_formats').innerText)
|
||||||
|
@ -196,9 +208,18 @@ window.addEventListener('DOMContentLoaded', (event) => {
|
||||||
localStorage.removeItem("audioStream");
|
localStorage.removeItem("audioStream");
|
||||||
}
|
}
|
||||||
|
|
||||||
function seekRelative(v) {
|
function seekAbsolute(t) {
|
||||||
video.pause();
|
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) {
|
if(audio) {
|
||||||
audio.pause();
|
audio.pause();
|
||||||
audio.currentTime=video.currentTime;
|
audio.currentTime=video.currentTime;
|
||||||
|
@ -345,6 +366,8 @@ window.addEventListener('DOMContentLoaded', (event) => {
|
||||||
document.querySelector('.html5-video-container').addEventListener('mousemove', (e) => handleMouse("frame", e));
|
document.querySelector('.html5-video-container').addEventListener('mousemove', (e) => handleMouse("frame", e));
|
||||||
controlbar.addEventListener('mousemove', (e) => handleMouse("controls", e));
|
controlbar.addEventListener('mousemove', (e) => handleMouse("controls", e));
|
||||||
|
|
||||||
|
seekAbsolute(startTime);
|
||||||
|
|
||||||
if(localStorage.getItem("autoplay") == "true") {
|
if(localStorage.getItem("autoplay") == "true") {
|
||||||
toggleVideo(true);
|
toggleVideo(true);
|
||||||
document.querySelector('#autoplayInput').checked = true;
|
document.querySelector('#autoplayInput').checked = true;
|
||||||
|
|
Loading…
Reference in a new issue