Почему мой контент не распознает все песни / файлы? - PullRequest
0 голосов
/ 20 декабря 2018

Я создаю музыкальный проигрыватель с помощью медиаплеера в Android Studio.Это работает, но есть одна проблема: в начале метод getMusic () (показанный ниже) собирает всю информацию (название, исполнитель, путь) моих музыкальных файлов в определенной папке, но когда он закончил, мой список массивовтолько содержит 7 песен, но в моей папке 16 песен.Так почему же мой преобразователь содержимого не получает все файлы?Все эти файлы на моем мобильном телефоне в порядке и не сломаны.Надеюсь, у кого-то есть идея, спасибо!

public void getMusic() {
    ContentResolver contentResolver = getContentResolver();
    Uri songUri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;
    String[] projection = {MediaStore.Audio.AudioColumns.DATA, MediaStore.Audio.AudioColumns.TITLE, MediaStore.Audio.AudioColumns.ALBUM, MediaStore.Audio.ArtistColumns.ARTIST,};
    Cursor songCursor = contentResolver.query(songUri, projection, MediaStore.Audio.Media.DATA + " like ? ", new String[]{"%/storage/emulated/0/Download/Music/%"}, null, null);
    Log.e("COUNT", "" + songCursor.getCount());

    if (songCursor != null && songCursor.moveToFirst()) {
        int songTitle = songCursor.getColumnIndex(MediaStore.Audio.Media.TITLE);
        int songArtist = songCursor.getColumnIndex(MediaStore.Audio.Media.ARTIST);
        int songPath = songCursor.getColumnIndex((MediaStore.Audio.Media.DATA));

        do {
            String currentTitle = songCursor.getString(songTitle);
            String currentArtist = songCursor.getString(songArtist);
            String currentPath = songCursor.getString(songPath);
            Uri uriSong = MediaStore.Audio.Media.getContentUriForPath(currentPath);

            // Testing purposes
            Log.e("TEST", "Name: " + currentTitle + " Artist: " + currentArtist + " Path: " + currentPath + uriSong.toString());

            songList.add(new Song(currentPath, "Artist", currentPath));
        } while (songCursor.moveToNext());
    }
    songCursor.close();
    Log.e("LIST", "" + songList.size());
}

1 Ответ

0 голосов
/ 04 января 2019

Хорошо, хорошо ... решение очень простое: я скопировал песни из моего облака на мобильное устройство.Никогда не использовал другой способ, потому что он работал в начале.Сегодня я выбрал USB-C адаптер с USB-флешкой и скопировал песни на эту флешку и с этой флешки на мобильное устройство.И это все.Облако было проблемой.

...