我正在尝试使用音乐播放器应用。我能够检索所有歌曲,包括艺术家,歌曲名称,专辑名称,专辑封面图片。但我的问题是,从网站下载音频zip文件后,解压后,文件夹名称将自动保存。示例文件名 ROBO_2(2018)[djmaza.info] 。我只能检索歌曲如果我删除hiphen( - )或下划线(_)和.info然后保存。这是代码。
public void loadAudio() {
ContentResolver contentResolver = HomeActivity.this.getContentResolver();
Uri uri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;
String selection = MediaStore.Audio.Media.IS_MUSIC + "!= 0";
String sortOrder = MediaStore.Audio.Media.TITLE + " ASC";
Cursor cursor = contentResolver.query(uri, null, selection, null, sortOrder);
MediaMetadataRetriever retriever = new MediaMetadataRetriever();
Bitmap albumcover;
if (cursor != null && cursor.getCount() > 0) {
audioList = new ArrayList<>();
while (cursor.moveToNext()) {
String data = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.DATA));
String title = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.TITLE));
String album = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.ALBUM));
String artist = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.ARTIST));
String duration = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.DURATION));
String image = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.MIME_TYPE));
retriever.setDataSource(data);
byte[] cover_pic = retriever.getEmbeddedPicture();
String album_cover;
if (cover_pic != null) {
albumcover = BitmapFactory.decodeByteArray(cover_pic, 0, cover_pic.length);
album_cover = String.valueOf(albumcover);
} else {
albumcover = null;
album_cover = null;
}
if (data.equals("") && title.equals("") && album.equals("") && artist.equals("") && duration.equals("") ||
data == null && title == null && album == null && artist == null && duration == null) {
Toast.makeText(this, "You don't have any playlists", Toast.LENGTH_SHORT).show();
} else {
// Save to audioList
audioList.add(new AudioList(data, title, album, artist, duration, albumcover));
}
}
}
cursor.close();
}
帮我解决这个问题。