这个问题困扰了好久,今天终于把它解决了,先提一句,千万不要看官方文档提供的相关方法,因为在SDK中根本不存在,也搜了好多文章,都没说明这个问题,今天来说说吧!
public void setSubShown(boolean shown)设置是否显示字幕。
public void setSubEncoding(String encoding)设置字幕编码。
public int getSubLocation()获取字幕位置类型。0为内嵌字幕,1为外挂字幕。
public void setSubPath(String subPath)设置外挂字幕路径。必须是本地文件路径。
以上是官网文档中VideoView类中封装的几个方法,然而并搜不到,但是有几个对应的差不多的方法,虽然官网没做标记,隐约感觉应该就是它
//设置是否显示字幕。
public void setTimedTextShown(booleanshown) {
if(mMediaPlayer!=null)
mMediaPlayer.setTimedTextShown(shown);
}
//设置字幕编码
public void setTimedTextEncoding(String encoding) {
if(mMediaPlayer!=null)
mMediaPlayer.setTimedTextEncoding(encoding);
}
//设置字幕位置
public int getTimedTextLocation() {
if(mMediaPlayer!=null)
returnmMediaPlayer.getTimedTextLocation();
return-1;
}
//设置字幕路径,必须为本地路径
public void addTimedTextSource(String subPath) {
if(mMediaPlayer!=null)
mMediaPlayer.addTimedTextSource(subPath);
}
以上方法才是设置字幕的正确方法
然后有个public void setOnTimedTextListener(OnTimedTextListener l)监听方法,会有两个回调方法,
public void onTimedText(String text){
//此处在TextView控件中显示字幕文字即可
}
public void onTimedTextUpdate(byte[] pixels, intwidth, intheight){
}
此时设置字幕的工程就全部结束。