यहां प्ले सूची से ट्रैक प्राप्त करने का एक कामकाजी तरीका है। असल में यह कर्सर को सभी प्लेलिस्ट क्वेरी के माध्यम से लूप करता है, और प्रत्येक बार जब यह किसी सदस्य (ट्रैक) की आईडी प्राप्त करता है और ट्रैक की उस आईडी का उपयोग करके हम पथ, कलाकार, अवधि, एल्बम इत्यादि जैसे अन्य डेटा प्राप्त कर सकते हैं
ContentResolver contentResolver = getContentResolver();
Uri playListUri = MediaStore.Audio.Playlists.Members.getContentUri("external", playlistID); //playlistID is the _ID of the given playlist
MediaMetadataRetriever mr = new MediaMetadataRetriever();
Cursor cursor = contentResolver.query(playListUri, null, null, null, null);
if(cursor != null)
{
if(cursor.moveToNext()) {
do {
String track_id = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Playlists.Members.AUDIO_ID));
Uri mediaContentUri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;
String[] trackProjection = new String[]{MediaStore.Audio.Media.TITLE, MediaStore.Audio.Media.ARTIST, MediaStore.Audio.Media.ALBUM, MediaStore.Audio.Media.DATA};
String selection = MediaStore.Audio.Media._ID + "=?";
String[] selectionArgs = new String[]{"" + track_id};
Cursor mediaCursor = contentResolver.query(mediaContentUri, trackProjection, selection, selectionArgs, null);
if (mediaCursor != null) {
if (mediaCursor.getCount() >= 0) {
mediaCursor.moveToPosition(0);
String song_title = mediaCursor.getString(mediaCursor.getColumnIndex(MediaStore.Audio.Media.TITLE));
String song_artist = mediaCursor.getString(mediaCursor.getColumnIndex(MediaStore.Audio.Media.ALBUM));
String song_album = mediaCursor.getString(mediaCursor.getColumnIndex(MediaStore.Audio.Media.ARTIST));
String song_path = mediaCursor.getString(mediaCursor.getColumnIndex(MediaStore.Audio.Media.DATA));
}
}
} while (cursor.moveToNext());
}
}
स्रोत
2017-12-31 20:29:30
बीटीडब्ल्यू मुझे आईडी मिलने का कारण यह है कि मैं यह सुनिश्चित करने के लिए अपनी आईडी स्ट्रिंग को दोबारा जांचता हूं कि यह सही है और इसे लंबे समय तक चालू करें। – shaneburgess
सीएमएनेगर क्या है? –