Jump from event markers to clip starts
This commit is contained in:
+11
@@ -441,6 +441,17 @@
|
|||||||
const winStart = Math.max(0, Math.min(86400 - winSize, focus - winSize / 2));
|
const winStart = Math.max(0, Math.min(86400 - winSize, focus - winSize / 2));
|
||||||
const sec = winStart + e.offsetX / timeline.clientWidth * winSize;
|
const sec = winStart + e.offsetX / timeline.clientWidth * winSize;
|
||||||
focus = sec;
|
focus = sec;
|
||||||
|
const systemEvent = systemHighlights.find(item => sec >= item.start && sec < item.end);
|
||||||
|
if (systemEvent) {
|
||||||
|
const eventClip = clips.find(clip => clip.start >= systemEvent.start);
|
||||||
|
if (eventClip) return playClip(eventClip, 0);
|
||||||
|
}
|
||||||
|
const savedHighlight = highlights.find(item => sec >= item.start && sec < item.end);
|
||||||
|
if (savedHighlight) {
|
||||||
|
const highlightClip = clips.find(clip => savedHighlight.start >= clip.start && savedHighlight.start < clip.start + clip.duration)
|
||||||
|
|| clips.find(clip => clip.start >= savedHighlight.start);
|
||||||
|
if (highlightClip) return playClip(highlightClip, Math.max(0, savedHighlight.start - highlightClip.start));
|
||||||
|
}
|
||||||
const clip = clips.find(c => sec >= c.start && sec < c.start + c.duration)
|
const clip = clips.find(c => sec >= c.start && sec < c.start + c.duration)
|
||||||
|| clips.find(c => c.start >= sec) || clips[clips.length - 1];
|
|| clips.find(c => c.start >= sec) || clips[clips.length - 1];
|
||||||
if (clip) playClip(clip, Math.max(0, Math.min(clip.duration - .1, sec - clip.start)));
|
if (clip) playClip(clip, Math.max(0, Math.min(clip.duration - .1, sec - clip.start)));
|
||||||
|
|||||||
Reference in New Issue
Block a user