I'm implementing about some Media Player, and this player have a many contents from many country, and almost stream has a text track about subtitle. I'm already check this point.
@Override
public void onCaption() {
TrackGroupArray trackGroups = mPlayer.getCurrentTrackGroups();
int groupIndex = -1;
int textTrackIndex = -1;
for (int i = 0; i < trackGroups.length; i++) {
TrackGroup group = trackGroups.get(i);
if (group.length > 0 && mPlayer.getRendererType(i) == C.TRACK_TYPE_TEXT) {
groupIndex = i;
for (int j = 0; j < group.length; j++) {
Format format = group.getFormat(j);
textTrackIndex = j;
break;
}
if (textTrackIndex != -1) {
break;
}
}
}
if (groupIndex != -1 && textTrackIndex != -1) {
TrackGroup group = trackGroups.get(groupIndex);
Format format = group.getFormat(textTrackIndex);
DefaultTrackSelector.SelectionOverride override = new DefaultTrackSelector.SelectionOverride(
groupIndex,
C.INDEX_UNSET
);
mTrackSelector.setParameters(((DefaultTrackSelector) mTrackSelector).buildUponParameters()
.setRendererDisabled(C.TRACK_TYPE_TEXT, false)
.setPreferredTextLanguage("ko")
.setSelectionOverride(C.TRACK_TYPE_TEXT, trackGroups, override)
.build());
}
}
At first, I used a ExoPlayer
(not a SimpleExoPlayer
), but ExoPlayer
class does not have a method about adding text output in my project. So, now, I change my field about player to SimpleExoPlayer. But it still not work for me.
The version of my project's exoplayer library is 2.18.5. I think the method what I need (addTextOutput
) was deprecated. If my opinion is correct, what can a use instead of addTextOutput
.