[英]use addSubtitleSource with videoview
我正在尝试将字幕添加到videoview中,getSubtitleSource的方法如下:
private InputStream getSubtitleSource(String filepath) {
InputStream ins = null;
String ccFileName = filepath.substring(0,filepath.lastIndexOf('.'));
File file = new File(ccFileName);
if (file.exists() == false)
{
Log.e(TAG,"no close caption file " + ccFileName);
return null;
}
FileInputStream fins = null;
try {
fins = new FileInputStream(file);
}catch (Exception e) {
Log.e(TAG,"exception " + e);
}
ins = (InputStream)fins;
return ins;
}
这里是我如何调用该方法并与其一起使用srt文件的方法:
videoView.seekTo(position);
String srt = "http://shasha/share/2018/09/07/Lucha_Mexico_.srt";
videoView.addSubtitleSource(getSubtitleSource(srt),MediaFormat.createSubtitleFormat("text/srt",Locale.ENGLISH.getLanguage()));
videoView.start();
addSubtitleSource有问题,createSubtitleFormat表示:
调用需要API级别19(当前最小值为16):android.widget.VideoView#addSubtitleSource
所以我只是用sdk版本将其包围,如下所示:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
videoView.seekTo(position);
String srt = "http://shasha/share/2018/09/07/Lucha_Mexico_.srt";
videoView.addSubtitleSource(getSubtitleSource(srt),MediaFormat.createSubtitleFormat("text/srt",Locale.ENGLISH.getLanguage()));
videoView.start();
}
但是当我播放视频时,没有字幕出现,所以怎么了
使用Build.VERSION进行检查只会使您的应用程序避免崩溃。因此,如果您使用的API级别低于api级别19,则该应用程序将不会崩溃,但getSubTitleSource将无法正常工作。
只需使用api级别19在app.gradle中编辑您的minSdkVersion。
minSdkVersion 19
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.