我正在尝试开发一款 Android 应用程序,可以在一个视频视图中播放多个视频。当一个完成后,第二个必须开始,依此类推。
我的视频存储在项目的 raw 文件夹中,
为了获取他们的文件名,我这样做:
Field[] fields = R.raw.class.getFields();
final List<String> videoNames = new ArrayList<String>() ;
for(Field field: fields){
videoNames.add(field.getName());
}
然后我将第一个路径设置为我的视频视图
videoUri = Uri.parse("android.resource://" + getActivity().getPackageName() + "/"
+ videoNames.get(0));
myVideoView.setVideoURI(videoUri);
玩其他人
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...
每次我在真实设备中尝试此代码时,都会遇到相同的错误
第一个视频播放完毕后“无法播放视频”...
所有视频都是使用我用于开发的同一设备录制的 .mp4 文件...
有任何想法吗?或者其他方式按顺序播放更多视频?
我到处寻找解决方案,但找不到。
EDIT
做到了!!好吧..这个错误太愚蠢了..谢谢大家的有用答案。
错误出现在我正在寻找的路径中(“这些不是您正在寻找的路径”)。
正如我所写,视频存储在 raw 文件夹中..
我正在使用
videoUri = Uri.parse("android.resource://" + MainActivity.ctx.getPackageName() + "/
+ videoNames.get(VideoI));
在路径中添加原始文件夹
videoUri = Uri.parse("android.resource://" + MainActivity.ctx.getPackageName() + "/raw/"
+ videoNames.get(VideoI));
它终于起作用了..正如我所写的..这是一个愚蠢的..