1
0
Fork 0
mirror of https://github.com/jellyfin/jellyfin-web synced 2025-03-30 19:56:21 +00:00

subtitle-sync: set explicit methods for textTracks and trackEvents.

This commit is contained in:
redSpoutnik 2020-01-07 21:12:25 +01:00
parent 547dbf5d67
commit 8f60d62919

View file

@ -584,8 +584,7 @@ define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackMa
return trackElement.mode === 'showing'; return trackElement.mode === 'showing';
}); });
} else { } else {
// get track events return null;
return currentTrackEvents;
} }
} }
@ -600,8 +599,9 @@ define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackMa
var trackElement = getTextTrack(); var trackElement = getTextTrack();
// if .vtt currently rendering // if .vtt currently rendering
if (trackElement) { if (trackElement) {
offsetValue = updateCurrentTrackOffset(offsetValue); setTextTrackSubtitleOffset(trackElement, offsetValue);
setVttSubtitleOffset(trackElement, offsetValue); } else if (currentTrackEvents) {
setTrackEventsSubtitleOffset(currentTrackEvents, offsetValue);
} else { } else {
console.log("No available track, cannot apply offset: ", offsetValue); console.log("No available track, cannot apply offset: ", offsetValue);
} }
@ -620,16 +620,23 @@ define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackMa
return relativeOffset; return relativeOffset;
} }
function setVttSubtitleOffset(currentTrack, offsetValue) { function setTextTrackSubtitleOffset(currentTrack, offsetValue) {
if (currentTrack.cues) { if (currentTrack.cues) {
offsetValue = updateCurrentTrackOffset(offsetValue);
Array.from(currentTrack.cues) Array.from(currentTrack.cues)
.forEach(function(cue) { .forEach(function(cue) {
cue.startTime -= offsetValue; cue.startTime -= offsetValue;
cue.endTime -= offsetValue; cue.endTime -= offsetValue;
}); });
} else if (Array.isArray(currentTrack)) { }
currentTrack.forEach(function(trackEvent) { }
function setTrackEventsSubtitleOffset(trackEvents, offsetValue) {
if (Array.isArray(trackEvents)) {
offsetValue = updateCurrentTrackOffset(offsetValue);
trackEvents.forEach(function(trackEvent) {
trackEvent.StartPositionTicks -= offsetValue; trackEvent.StartPositionTicks -= offsetValue;
trackEvent.EndPositionTicks -= offsetValue; trackEvent.EndPositionTicks -= offsetValue;
}); });