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