1

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.

Benjamin Buch
  • 4,752
  • 7
  • 28
  • 51
asdf9797
  • 21
  • 4

1 Answers1

0

Yes ExoPlayer.addTextOutuput() was removed since v2.16.0. onCues can be overriden inside your ExoPlayer.addListener():

player.addListener(object: Player.Listener {
    override fun onCues(cueGroup: CueGroup) {
        super.onCues(cueGroup)
    }
})
hiddeneyes02
  • 2,562
  • 1
  • 31
  • 58