From ea1ab674a402e446e3d024099897ab4dd9d8c39d Mon Sep 17 00:00:00 2001 From: ojw28 Date: Wed, 1 Oct 2014 21:26:12 +0100 Subject: [PATCH] Strip trailing newline from WebVTT subtitles. --- .../exoplayer/text/webvtt/WebvttSubtitle.java | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/library/src/main/java/com/google/android/exoplayer/text/webvtt/WebvttSubtitle.java b/library/src/main/java/com/google/android/exoplayer/text/webvtt/WebvttSubtitle.java index 0155636033..cc6bdc4ef4 100644 --- a/library/src/main/java/com/google/android/exoplayer/text/webvtt/WebvttSubtitle.java +++ b/library/src/main/java/com/google/android/exoplayer/text/webvtt/WebvttSubtitle.java @@ -79,15 +79,21 @@ public class WebvttSubtitle implements Subtitle { @Override public String getText(long timeUs) { - StringBuilder subtitleStringBuilder = new StringBuilder(); + StringBuilder stringBuilder = new StringBuilder(); for (int i = 0; i < cueTimesUs.length; i += 2) { if ((cueTimesUs[i] <= timeUs) && (timeUs < cueTimesUs[i + 1])) { - subtitleStringBuilder.append(cueText[i / 2]); + stringBuilder.append(cueText[i / 2]); } } - return (subtitleStringBuilder.length() > 0) ? subtitleStringBuilder.toString() : null; + int stringLength = stringBuilder.length(); + if (stringLength > 0 && stringBuilder.charAt(stringLength - 1) == '\n') { + // Adjust the length to remove the trailing newline character. + stringLength -= 1; + } + + return stringLength == 0 ? null : stringBuilder.substring(0, stringLength); } }