bbox: add A-B video loop

This commit is contained in:
ed 2022-07-05 19:53:43 +02:00
parent 49efffd740
commit 48564ba52a

View file

@ -37,6 +37,8 @@ window.baguetteBox = (function () {
vmute = false, vmute = false,
vloop = sread('vmode') == 'L', vloop = sread('vmode') == 'L',
vnext = sread('vmode') == 'C', vnext = sread('vmode') == 'C',
loopA = null,
loopB = null,
resume_mp = false; resume_mp = false;
var onFSC = function (e) { var onFSC = function (e) {
@ -281,6 +283,10 @@ window.baguetteBox = (function () {
rotn(e.shiftKey ? -1 : 1); rotn(e.shiftKey ? -1 : 1);
else if (k == "KeyY") else if (k == "KeyY")
dlpic(); dlpic();
else if (k == "BracketLeft")
setloop(1);
else if (k == "BracketRight")
setloop(2);
} }
function anim() { function anim() {
@ -808,8 +814,18 @@ window.baguetteBox = (function () {
} }
function playvid(play) { function playvid(play) {
if (vid()) if (!play) {
vid()[play ? 'play' : 'pause'](); timer.rm(loopchk);
loopA = loopB = null;
}
var v = vid();
if (!v)
return;
v[play ? 'play' : 'pause']();
if (play && loopA !== null && v.currentTime < loopA)
v.currentTime = loopA;
} }
function playpause() { function playpause() {
@ -828,6 +844,31 @@ window.baguetteBox = (function () {
showNextImage(); showNextImage();
} }
function setloop(side) {
var v = vid();
if (!v)
return;
var t = v.currentTime;
if (side == 1) loopA = t;
if (side == 2) loopB = t;
toast.inf(5, 'Loop' + (side == 1 ? 'A' : 'B') + ': ' + f2f(t, 2));
if (loopB !== null)
timer.add(loopchk);
}
function loopchk() {
if (loopB === null)
return;
var v = vid();
if (!v || v.paused || v.currentTime < loopB)
return;
v.currentTime = loopA || 0;
}
function mp_ctl() { function mp_ctl() {
var v = vid(); var v = vid();
if (!vmute && v && mp.au && !mp.au.paused) { if (!vmute && v && mp.au && !mp.au.paused) {