首先我遇到这个问题肯定不是一般的找不到文件的错误。使用vitamio的VideoView的时候,出现一部分视频会找不到文件。
分析很久问题出现的原因,最后得出是因为这部分视频名都是URLEncode过的,可能是这个原因导致字符串在解析的过程中出现问题。然后跟踪代码到VideoView的setVideoPath处,发现他的实现如下
public void setVideoPath(String path) {
setVideoURI(Uri.parse(path));
}
很明显这里就是导致错误所在,所以解决办法就是将string 类型的path先编码一下
videoView.setVideoPath(URLEncoder.encode(path, “UTF-8”));