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 sec = winStart + e.offsetX / timeline.clientWidth * winSize;
|
||||
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)
|
||||
|| 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)));
|
||||
|
||||
Reference in New Issue
Block a user