In my project i was implemented the videoview for streaming videos. It is taking lot of time for loading and buffering the videos where as other players or browser taking far lesser time then videoview.. I was searching in internet from a couple of days couldn't able to find the proper solution for my case. I am loading the videos from Amazon S3 bucket i don't think it is because of server
private void playVideo() {
vidUri = Uri.parse(movieUrl);
vidControl = new CustomMediaControl(this, new CustomMediaControl.MediaFullScreen() {
@Override
public void fullScreenButtonClicked() {
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
}
@Override
public void fullScreenButtonExited() {
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}
});
videoPlayer.setMediaController(vidControl);
videoPlayer.setVideoURI(vidUri);
videoPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
// TODO Auto-generated method stub
mp.start();
mp.setOnInfoListener(new MediaPlayer.OnInfoListener() {
@Override
public boolean onInfo(MediaPlayer mp, int what, int extra) {
switch (what) {
case MediaPlayer.MEDIA_INFO_VIDEO_RENDERING_START: {
progressBar.setVisibility(View.GONE);
return true;
}
case MediaPlayer.MEDIA_INFO_BUFFERING_START: {
progressBar.setVisibility(View.VISIBLE);
return true;
}
case MediaPlayer.MEDIA_INFO_BUFFERING_END: {
progressBar.setVisibility(View.GONE);
return true;
}
}
return false;
}
});
}
});
videoPlayer.setOnErrorListener(new MediaPlayer.OnErrorListener() {
@Override
public boolean onError(MediaPlayer mp, int what, int extra) {
Log.e("Media Details", "hello");
return true;
}
});
videoPlayer.start();
videoPlayer.seekTo(stopPosition);
}
I was also looked into the below links Link1 and Link2. Let me know if you need more clarity