30/09/2018, 20:55

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

Đỗ Văn Chanh viết 23:02 ngày 30/09/2018

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

Azure viết 23:00 ngày 30/09/2018

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;
}
kid1412 viết 22:55 ngày 30/09/2018

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;
  
  
    
        }`
Nguyễn Hải Đăng viết 23:01 ngày 30/09/2018

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

Kim Văn Thắng viết 23:10 ngày 30/09/2018

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ế ạ?

Bài liên quan
0