我正在实现关于一些媒体播放器,这个播放器有来自许多国家的许多内容,并且几乎流有一个关于字幕的文本轨道。我已经检查过这一点了。
@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());
}
}
首先,我使用了ExoPlayer
(不是SimpleExoPlayer
),但ExoPlayer
类没有在我的项目中添加文本输出的方法。现在,我将字段about player更改为SimpleExoPlayer。但它仍然不适合我。
我项目的exoplayer库的版本是2.18.5。我认为我需要的方法(addTextOutput
)被弃用了。如果我的观点是正确的,有什么可以代替addTextOutput
呢?
是ExoPlayer.addTextOutuput()
自v2.16.0起被删除。onCues
可以在您的ExoPlayer.addListener()
中被覆盖:
player.addListener(object: Player.Listener {
override fun onCues(cueGroup: CueGroup) {
super.onCues(cueGroup)
}
})