2

デモ プレーヤーと 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;
    }
}
4

1 に答える 1

1

OK、これが解決策です。上記のコードには何も問題はありません。問題は、私が試している字幕ファイルが破損しているため、WebVttパーサーで解析できないことです。

他の字幕ファイルで試してみると、これはうまく機能します

于 2016-09-14T06:28:33.193 に答える