From 6a80b4caebe5204f46d3294589791fcc367ff336 Mon Sep 17 00:00:00 2001 From: dkanada Date: Thu, 9 Apr 2020 17:13:30 +0900 Subject: [PATCH] Merge pull request #1049 from JustAMan/fix-ff-newline-subs Fix newline breaks in SRT subtitles shown in Firefox (cherry picked from commit b44c8c0c524707fb26d480054658f6151f62f38c) Signed-off-by: Joshua M. Boniface --- src/components/htmlvideoplayer/plugin.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/components/htmlvideoplayer/plugin.js b/src/components/htmlvideoplayer/plugin.js index 19e8a8fac0..86378ea415 100644 --- a/src/components/htmlvideoplayer/plugin.js +++ b/src/components/htmlvideoplayer/plugin.js @@ -117,8 +117,9 @@ define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackMa }); } - function normalizeTrackEventText(text) { - return text.replace(/\\N/gi, '\n'); + function normalizeTrackEventText(text, useHtml) { + var result = text.replace(/\\N/gi, '\n').replace(/\r/gi, ''); + return useHtml ? result.replace(/\n/gi, '
') : result; } function setTracks(elem, tracks, item, mediaSource) { @@ -1287,7 +1288,7 @@ define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackMa data.TrackEvents.forEach(function (trackEvent) { var trackCueObject = window.VTTCue || window.TextTrackCue; - var cue = new trackCueObject(trackEvent.StartPositionTicks / 10000000, trackEvent.EndPositionTicks / 10000000, normalizeTrackEventText(trackEvent.Text)); + var cue = new trackCueObject(trackEvent.StartPositionTicks / 10000000, trackEvent.EndPositionTicks / 10000000, normalizeTrackEventText(trackEvent.Text, false)); trackElement.addCue(cue); }); @@ -1328,8 +1329,7 @@ define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackMa } if (selectedTrackEvent && selectedTrackEvent.Text) { - - subtitleTextElement.innerHTML = normalizeTrackEventText(selectedTrackEvent.Text); + subtitleTextElement.innerHTML = normalizeTrackEventText(selectedTrackEvent.Text, true); subtitleTextElement.classList.remove('hide'); } else {