我正在使用演示播放器和ExtractorRendererBuilder从url流式传输视频,但是当我通过webVtt url时它不显示字幕,我做错了什么?
if(!TextUtils.isEmpty(subtitleUrl)) {
DataSource textDataSource = new DefaultUriDataSource(context, bandwidthMeter, userAgent);
SingleSampleSource textSampleSource = new SingleSampleSource(Uri.parse(subtitleUrl), textDataSource,
MediaFormat.createTextFormat("id", MimeTypes.TEXT_VTT, MediaFormat.NO_VALUE, TrackRenderer.MATCH_LONGEST_US,
"eng"));
TrackRenderer textRenderer = new TextTrackRenderer(textSampleSource, player,
mainHandler.getLooper(), new WebvttParser());
renderers[DemoPlayer.TYPE_TEXT] = textRenderer;
Log.e("sub", "loaded");
}
player.onRenderers(renderers, bandwidthMeter);
和
@Override
public void onStateChanged(boolean playWhenReady, int playbackState) {
switch(playbackState) {
.....
case ExoPlayer.STATE_READY:
Log.e("sub", "ready");
player.setSelectedTrack(DemoPlayer.TYPE_TEXT, DemoPlayer.TYPE_TEXT);
break;
default:
break;
}
}
答案 0 :(得分:1)
好的,所以这是解决方案,上面的代码没有任何问题,问题是我正在尝试的字幕文件已损坏,因此无法由WebVtt
解析器进行解析。
一旦我尝试使用其他字幕文件,这很有用