mirror of
https://github.com/jellyfin/jellyfin-web
synced 2025-03-30 19:56:21 +00:00
Simplify vtt subtitle offset (firefox compatibility)
This commit is contained in:
parent
e376ddff08
commit
aca0fb09bc
1 changed files with 27 additions and 23 deletions
|
@ -575,6 +575,20 @@ define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackMa
|
||||||
return showTrackOffset;
|
return showTrackOffset;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function getTextTrack() {
|
||||||
|
var videoElement = self._mediaElement;
|
||||||
|
if (videoElement) {
|
||||||
|
return Array.from(videoElement.textTracks)
|
||||||
|
.find(function(trackElement) {
|
||||||
|
// get showing .vtt textTack
|
||||||
|
return trackElement.mode === 'showing';
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
// get track events
|
||||||
|
return currentTrackEvents;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
self.setSubtitleOffset = function(offset) {
|
self.setSubtitleOffset = function(offset) {
|
||||||
|
|
||||||
var offsetValue = parseFloat(offset);
|
var offsetValue = parseFloat(offset);
|
||||||
|
@ -583,28 +597,14 @@ define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackMa
|
||||||
if (currentAssRenderer) {
|
if (currentAssRenderer) {
|
||||||
updateCurrentTrackOffset(offsetValue);
|
updateCurrentTrackOffset(offsetValue);
|
||||||
} else {
|
} else {
|
||||||
var videoElement = self._mediaElement;
|
var trackElement = getTextTrack();
|
||||||
var mediaStreamTextTracks = getMediaStreamTextTracks(self._currentPlayOptions.mediaSource);
|
// if .vtt currently rendering
|
||||||
|
if (trackElement) {
|
||||||
Array.from(videoElement.textTracks)
|
|
||||||
.filter(function(trackElement) {
|
|
||||||
// get showing .vtt textTacks
|
|
||||||
return trackElement.mode === 'showing';
|
|
||||||
})
|
|
||||||
.forEach(function(trackElement) {
|
|
||||||
|
|
||||||
var track = customTrackIndex === -1 ? null : mediaStreamTextTracks.filter(function (t) {
|
|
||||||
return t.Index === customTrackIndex;
|
|
||||||
})[0];
|
|
||||||
|
|
||||||
if (track) {
|
|
||||||
offsetValue = updateCurrentTrackOffset(offsetValue);
|
offsetValue = updateCurrentTrackOffset(offsetValue);
|
||||||
setVttSubtitleOffset(trackElement, offsetValue);
|
setVttSubtitleOffset(trackElement, offsetValue);
|
||||||
} else {
|
} else {
|
||||||
console.log("No available track, cannot apply offset : " + offsetValue);
|
console.log("No available track, cannot apply offset : " + offsetValue);
|
||||||
}
|
}
|
||||||
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -628,8 +628,12 @@ define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackMa
|
||||||
cue.startTime -= offsetValue;
|
cue.startTime -= offsetValue;
|
||||||
cue.endTime -= offsetValue;
|
cue.endTime -= offsetValue;
|
||||||
});
|
});
|
||||||
|
} else if (Array.isArray(currentTrack)) {
|
||||||
|
currentTrack.forEach(function(trackEvent) {
|
||||||
|
trackEvent.StartPositionTicks -= offsetValue;
|
||||||
|
trackEvent.EndPositionTicks -= offsetValue;
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
self.getSubtitleOffset = function() {
|
self.getSubtitleOffset = function() {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue