Я создаю музыкальный проигрыватель с помощью медиаплеера в 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());
}