代码之家  ›  专栏  ›  技术社区  ›  Twing90

如何在文件夹中播放所有视频?

  •  -1
  • Twing90  · 技术社区  · 6 年前

    我试图在一个特定的文件夹中播放所有的视频。 我已经为播放一个文件构建了代码,它可以工作。 我希望能够播放文件夹中按名称排序的所有视频,列表完成后,我希望从头开始重新启动。 我该怎么办? 这是我的起始代码:

    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 回复  |  直到 6 年前
        1
  •  0
  •   Gerolmed    6 年前

    首先获取目录的文件实例:

    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());
        }
    });