Как воспроизвести все видео в папке? - PullRequest
0 голосов
/ 19 ноября 2018

Я пытаюсь воспроизвести все видео в определенной папке. Я уже собрал код для воспроизведения одного файла, и он работает. Я хочу иметь возможность воспроизводить все видео в папке, упорядоченной по имени, и когда список будет закончен, я хочу начать заново с самого начала. Как я могу сделать? Это мой стартовый код:

public class Activity_Main extends AppCompatActivity {

    String SrcPath = "/sdcard/B-Happy/b-happy.mp4";
    VideoView videoView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        videoView = (VideoView)findViewById(R.id.videoView);
        videoView.setVideoPath(SrcPath);
        videoView.setMediaController(new MediaController(this));
        videoView.requestFocus();
        videoView.start();

        videoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
            @Override
            public void onCompletion(MediaPlayer mediaPlayer) {
                videoView.start();
            }
        });

        videoView.setOnErrorListener(new MediaPlayer.OnErrorListener() {
            @Override
            public boolean onError(MediaPlayer mediaPlayer, int i, int i1) {
                return true;
            }
        });
    }

}

1 Ответ

0 голосов
/ 19 ноября 2018

Прежде всего получите экземпляр файла каталога:

File dir = new File("Path");

Чтобы получить полный путь, это может помочь:

Environment.getExternalStorageDirectory().toString()

Вы можете получить файлы, используя:

File[] files = dir.listFiles();

Примечание. Эти файлы могут быть каталогами.Просто проверьте file.isDirectory ();

Редактировать: сортировка должна быть довольно простой.Просто добавьте все файлы в ArrayList и вызовите:

Collections.sort(yourList, new Comparator<File>() {
    @Override
    public int compare(File f1, File f2) {
        return f1.getName().compareToIgnoreCase(f2.getName());
    }
});
...