I'm trying to develop an android application that plays more than one video in one videoview. When one is finished, the second has to start and so on.
My videos are stored in the raw folder of the project, to get their filenames i do:
Field[] fields = R.raw.class.getFields();
final List<String> videoNames = new ArrayList<String>() ;
for(Field field: fields){
videoNames.add(field.getName());
}
then i set the first one's path to my video view
videoUri = Uri.parse("android.resource://" + getActivity().getPackageName() + "/"
+ videoNames.get(0));
myVideoView.setVideoURI(videoUri);
to play the others
myVideoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
videoUri = Uri.parse("android.resource://" + getActivity().getPackageName() + "/"
+ videoNames.get(VideoI));
myVideoView.setVideoURI(videoUri);
myVideoView.start();
if(VideoI==videoNames.size()-1)
{
VideoI=0;
}
else{
VideoI++;
}
}
});
BUT...
every time that i try this code in real device, i get the same error "can't play video" when the first video is finished...
all the videos are .mp4 file recorded with the same device that i use for develop...
any ideas? or other ways to play more videos in sequence? I looked for a solution everywhere but i couldn't find it..
EDIT
DID IT!! ok.. the error was so silly.. thank you all for the helpful answers.
the error was in the path i was looking for ("these are not the paths your looking for" cit.)
as i wrote, the videos are stored in raw folder.. i was using
videoUri = Uri.parse("android.resource://" + MainActivity.ctx.getPackageName() + "/
+ videoNames.get(VideoI));
adding raw folder in path
videoUri = Uri.parse("android.resource://" + MainActivity.ctx.getPackageName() + "/raw/"
+ videoNames.get(VideoI));
it finally worked.. as i wrote.. it was a silly..