我正在尝试在循环中播放本地目录中的所有视频。但只有第一个视频正在循环播放,网络视图无法播放。
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
getInit();
getSupportActionBar().hide();
}
public void getInit() {
video_player_view = (VideoView) findViewById(R.id.videoView);
media_Controller = new MediaController(this);
dm = new DisplayMetrics();
video_player_view.setMediaController(media_Controller);
ActivityCompat.requestPermissions(MainActivity.this,
new String[]{Manifest.permission.READ_EXTERNAL_STORAGE},
REQUEST_READ_STORAGE);
Hash_file_maps = new HashMap<String, String>();
File file = new File("/storage/emulated/0/VIDEOS/");
File[] listFile = file.listFiles();
for (File f : listFile) {
String name = f.getName();
FilePathStrings = new String[listFile.length];
for (int i = 0; i < listFile.length; i++) {
if (name.endsWith(".mp4")) {
video_player_view.setVideoPath(Hash_file_maps.put(listFile[i].getName(), listFile[i].getAbsolutePath()));
}
}
}
video_player_view.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
video_player_view.start();
}
});
}
我无法意识到我错误的地方,你能帮助我吗?
答案 0 :(得分:2)
一次尝试
//Video Loop
video_view.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
public void onCompletion(MediaPlayer mp) {
video_view.start(); //need to make transition seamless.
}
});
Uri uri = Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.sample_2);
video_view.setVideoURI(uri);
video_view.start();
答案 1 :(得分:0)
您的代码似乎是将视频源设置为一个值,然后立即设置为另一个值,依此类推,而不是实际播放视频。
看起来你可能期待&#39; setVideoPath&#39;将所有视频添加到要播放的列表中,但文档很清楚,它只设置了一条路径:
setVideoPath
void setVideoPath(String path)
设置视频路径。
评论中提供的@sasikumar链接是一个很好的例子。