Giúp đỡ lấy tên các tệp file nhạc(mp3) trong thư mục

String src1 = Environment.getExternalStorageDirectory() + "/Download";
        final Uri uri1 = Uri.parse(src1);
        File f = new File(String.valueOf(uri1));
        String[] str;
        str = f.list();
        txt.setText(str[0]);

mình làm như này thì hôm trước chạy được 1 lần hiển thị được tên các file lên nhưng sau đó lại không được báo lỗi. mình không rõ là bị sao nữa. mọi người giúp mình với ạ.
mình đang làm ứng dụng nghe nhạc mp3 trên android. ai có cách nào để lấy ra tên danh sách nhạc có thể hướng dẫn mình với ạ. thank mọi người

1 Like

Có ai biết giúp mình với ạ, Cách để lấy ra tên danh sách các tệp trong thư mục nào đó như Download

1 Like

Phương thức này lấy ra danh sách tất cả các file nhạc có trong máy

public static List getListSongs(Context context) {
List mListSongs = new ArrayList();
Uri uri;
uri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;

    String[] m_data = {MediaStore.Audio.Media._ID,
            MediaStore.Audio.Media.DISPLAY_NAME,
            MediaStore.Audio.Media.TITLE,
            MediaStore.Audio.Media.ALBUM,
            MediaStore.Audio.Media.ARTIST,
            MediaStore.Audio.Media.DURATION,
            MediaStore.Audio.Media.DATA};

    Cursor c = context.getContentResolver().query(uri, m_data, MediaStore.Audio.Media.IS_MUSIC + "=1", null,
            MediaStore.Audio.Media.TITLE + " ASC");

    for (c.moveToFirst(); !c.isAfterLast(); c.moveToNext()) {

        String id, name, title, album, artist, path;
        int duration;
        id = c.getString(c.getColumnIndexOrThrow(MediaStore.Audio.Media._ID));
        name = c.getString(c.getColumnIndexOrThrow(MediaStore.Audio.Media.DISPLAY_NAME));
        title = c.getString(c.getColumnIndexOrThrow(MediaStore.Audio.Media.TITLE));
        album = c.getString(c.getColumnIndexOrThrow(MediaStore.Audio.Media.ALBUM));
        artist = c.getString(c.getColumnIndexOrThrow(MediaStore.Audio.Media.ARTIST));
        duration = (int) (c.getInt(c.getColumnIndexOrThrow(MediaStore.Audio.Media.DURATION)));
        path = c.getString(c.getColumnIndexOrThrow(MediaStore.MediaColumns.DATA));
        Song song = new Song(id, name, title, album, artist, path, duration);
        mListSongs.add(song);

    }
    return mListSongs;
}
1 Like

mình dùng hàm này để lấy ` private ArrayList getAllSong(File directory) {

            File[] allFile = directory.listFiles();
  
  
    
            ArrayList<File> al = new ArrayList<File>();
  
  
    
            for(File singleFile : allFile) {
  
  
    
                if(singleFile.isDirectory() && !singleFile.isHidden()) {
  
  
    
                    al.addAll(this.getAllSong(singleFile));
  
  
    
                }else{
  
  
    
                    if(singleFile.getName().endsWith(".mp3") || singleFile.getName().endsWith(".wav") || singleFile.getName().endsWith(".flac")) {
  
  
    
                        al.add(singleFile);
  
  
    
                    }
  
  
    
                }
  
  
    
            }
  
  
    
            return al;
  
  
    
        }`
1 Like

Vừa đủ yêu cầu của bạn. Có thể đáp ứng được nhiều đuôi khác nhau:
http://m.alvinalexander.com/blog/post/java/how-implement-java-filefilter-list-files-directory

1 Like

MediaStore.Audio.Media.TITLE + " ASC"

Cho em hỏi dòng đoạn code trên trong phần cursor có ý nghĩa j thế ạ?

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?