1、用VideoView播放本地视频的时候经常会报FilNotFoundException,但是实际上文件是存在的,弹窗会报该视频无法播放。试了很多方法都不能解决。实际中发现弹窗显示不能播放,实际上视频正在播放,这种情况下,确认文件存在的情况下,去掉弹框就可以了:
mVideoView.setOnErrorListener(new MediaPlayer.OnErrorListener() {
@Override
public boolean onError(MediaPlayer mp,int what,int extra) {
if (mFile.exists()) {
mVideoView.stopPlayback();
mVideoView.setVideoURI(Uri.fromFile(mFile));
mVideoView.requestFocus();
mVideoView.start();
}
return true;
}
});
onError方法返回true,弹窗就不会出现。
2、视频播放前有个缓冲时间,这样体验不好,可以在正真播放前给个loading框或者加图片等方式
mVideoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
mp.setOnInfoListener(new MediaPlayer.OnInfoListener() {
@Override
public boolean onInfo(MediaPlayer mp,int what,int extra) {
//这里是视频真正开始播放的时候
if (what ==MediaPlayer.MEDIA_INFO_VIDEO_RENDERING_START) {
FZUtils.setGone(mProgressBar,true);
return true;
}
return false;
}
});
}
});













网友评论