diff --git a/library/ui/src/main/java/com/google/android/exoplayer2/ui/SubtitleWebView.java b/library/ui/src/main/java/com/google/android/exoplayer2/ui/SubtitleWebView.java index 1ce1d16d28..4e869de7ff 100644 --- a/library/ui/src/main/java/com/google/android/exoplayer2/ui/SubtitleWebView.java +++ b/library/ui/src/main/java/com/google/android/exoplayer2/ui/SubtitleWebView.java @@ -212,6 +212,19 @@ import java.util.List; String textAlign = convertAlignmentToCss(cue.textAlignment); + String writingMode = convertVerticalTypeToCss(cue.verticalType); + + // All measurements are done orthogonally for vertical text (i.e. from left of screen instead + // of top, or vice versa). So flip the position & translation values. + if (cue.verticalType == Cue.VERTICAL_TYPE_LR || cue.verticalType == Cue.VERTICAL_TYPE_RL) { + float tmpFloat = horizontalPositionPercent; + horizontalPositionPercent = verticalPositionPercent; + verticalPositionPercent = tmpFloat; + int tmpInt = horizontalTranslatePercent; + horizontalTranslatePercent = verticalTranslatePercent; + verticalTranslatePercent = tmpInt; + } + html.append( Util.formatInvariant( "