如何解决ExoPlayer 未从 .srt 文件加载字幕
所以我试图在 exoplayer 中显示我的 .srt 文件中的字幕,但它不起作用。 我是否需要使用单独的 SubtitleView 来显示我的字幕? PlayerView 中的subtitleView 不够用? 顺便说一句,我使用 PlayerView。
我使用的 exoplayer 版本是 2.14.0。
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
但也没有奏效。
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 举报,一经查实,本站将立刻删除。