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

Merge pull request #507 from redSpoutnik/fix-subtitle-sync

Fix subtitle sync
This commit is contained in:
Joshua M. Boniface 2019-10-26 11:47:11 -04:00 committed by GitHub
commit ee1149644d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 21 additions and 23 deletions

View file

@ -575,36 +575,34 @@ define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackMa
self.setSubtitleOffset = function(offset) { self.setSubtitleOffset = function(offset) {
var offsetValue = parseFloat(offset); var offsetValue = parseFloat(offset);
var videoElement = self._mediaElement;
var mediaStreamTextTracks = getMediaStreamTextTracks(self._currentPlayOptions.mediaSource);
Array.from(videoElement.textTracks) // if .ass currently rendering
.filter(function(trackElement) { if (currentAssRenderer){
if (customTrackIndex === -1 ) { updateCurrentTrackOffset(offsetValue);
} else {
var videoElement = self._mediaElement;
var mediaStreamTextTracks = getMediaStreamTextTracks(self._currentPlayOptions.mediaSource);
Array.from(videoElement.textTracks)
.filter(function(trackElement) {
// get showing .vtt textTacks // get showing .vtt textTacks
return trackElement.mode === 'showing'; return trackElement.mode === 'showing';
} else { })
// get current .ass textTrack .forEach(function(trackElement) {
return ("textTrack" + customTrackIndex) === trackElement.id;
}
})
.forEach(function(trackElement) {
var track = mediaStreamTextTracks.filter(function(stream) { var track = customTrackIndex === -1 ? null : mediaStreamTextTracks.filter(function (t) {
return ("textTrack" + stream.Index) === trackElement.id; return t.Index === customTrackIndex;
})[0]; })[0];
if(track) { if (track) {
offsetValue = updateCurrentTrackOffset(offsetValue); offsetValue = updateCurrentTrackOffset(offsetValue);
var format = (track.Codec || '').toLowerCase();
if (format !== 'ass' && format !== 'ssa') {
setVttSubtitleOffset(trackElement, offsetValue); setVttSubtitleOffset(trackElement, offsetValue);
} else {
console.log("No available track, cannot apply offset : " + offsetValue);
} }
} else {
console.log("No available track, cannot apply offset : " + offsetValue);
}
}); });
}
}; };
function updateCurrentTrackOffset(offsetValue) { function updateCurrentTrackOffset(offsetValue) {

View file

@ -1667,7 +1667,7 @@ define(['events', 'datetime', 'appSettings', 'itemHelper', 'pluginManager', 'pla
self.getPlayerSubtitleOffset = function(player) { self.getPlayerSubtitleOffset = function(player) {
player = player || self._currentPlayer; player = player || self._currentPlayer;
if (player.getPlayerSubtitleOffset) { if (player.getSubtitleOffset) {
return player.getSubtitleOffset(); return player.getSubtitleOffset();
} }
} }