VideoView使用中一些坑

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;

}

});

}

});

你可能感兴趣的:(VideoView使用中一些坑)