Search code examples
androidexoplayerwebvtt

WebVtt subtitles not displaying( not working)


I am using demo player and ExtractorRendererBuilder to stream a video from url which is working fine but when I pass webVtt url it doesn't display subtitle, what I am doing wrong?

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);

and

@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;
    }
}

Solution

  • Ok, So here is the solution, there is nothing wrong in above code, problem was the subtitle file I am trying is corrupt and is therefore can't be parsed by WebVtt parser.

    Once I tried with other subtitle file this works great