微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ExoPlayer 未从 .srt 文件加载字幕

如何解决ExoPlayer 未从 .srt 文件加载字幕

所以我试图在 exoplayer 中显示我的 .srt 文件中的字幕,但它不起作用。 我是否需要使用单独的 SubtitleView 来显示我的字幕? PlayerView 中的subtitleView 不够用? 顺便说一句,我使用 PlayerView。

我使用的 exoplayer 版本是 2.14.0。

addtextoutput 方法

simpleExoPlayer.addtextoutput(cues -> {
                playerView.getSubtitleView().setCues(cues);
                playerView.getSubtitleView().setVisibility(View.VISIBLE);
                playerView.getSubtitleView().onCues(cues);
                assert cues.get(0).text != null;
                Log.d("subtitles",cues.get(0).text.toString());
            });

我也尝试实现 textoutput 但也没有奏效。

我的sample.srt文件内容

1
00:00:00,000 --> 00:00:01,500
For www.forom.com

2
00:00:01,500 --> 00:00:02,500
<i>Tonight's the night.</i>

3
00:00:03,000 --> 00:00:15,000
<i>And it's going to happen
again and again --</i>

我用来加载字幕的函数

public void buildMediaSourceV3(Uri uri){
        String subtitlesUri = sharedPreferencesSubtitles.getString(videoName.getText().toString(),"");

        DataSource.Factory factory = new DefaultDataSourceFactory(VideoPlayer.this,getPackageName(),new DefaultBandwidthMeter());
        MediaItem mediaItem = MediaItem.fromUri(uri);
        MediaSource videoSource = new ProgressiveMediaSource.Factory(factory).createMediaSource(mediaItem);
        if(subtitlesUri.equals(""))
        {
            simpleExoPlayer.addMediaSource(videoSource);
        }
        else
        {
                MediaItem.Subtitle subtitle = new  MediaItem.Subtitle(Uri.parse(subtitlesUri),MimeTypes.APPLICATION_SUBRIP,"en");
                MediaSource textMediaSource = new SingleSampleMediaSource.Factory(factory).createMediaSource(subtitle,C.TIME_UNSET);
                textMediaSource.getMediaItem().mediaMetadata.subtitle.toString();
                MergingMediaSource mergingMediaSource = new MergingMediaSource(videoSource,textMediaSource);
                simpleExoPlayer.addMediaSource(mergingMediaSource);
        }
    }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。