
[img]https://i.sstatic. net/WiDtprGw.png[/img]
Песни находятся в ArrayList под названием songItemList. Вот код, создающий MediaItems. Я подтверждаю, что файл обложки альбома существует, затем выполняю Uri.parse на пути к файлу. Я также попробовал fromFile с тем же результатом. Я делаю то же самое для файла mp3. Должно быть, я что-то упускаю.
Код: Выделить всё
for (SongItem songItem:songItemList) {
String id = SONG + "_" + songItem.getTrackid();
Uri uri = null;
Uri mediaUri = null;
if (songItem.getArtLocation() != null) {
File f = new File(songItem.getArtLocation());
if (f.exists()) {
//uri = Uri.fromFile(f);
uri = Uri.parse(songItem.getArtLocation());
} else {
Log.d(TAG,"File doesn't exist:" + songItem.getArtLocation());
}
f = new File(songItem.getLocation());
if (f.exists()) {
//mediaUri = Uri.fromFile(f);
mediaUri = Uri.parse(songItem.getLocation());
} else {
Log.d(TAG, "File doesn't exist: " + songItem.getLocation());
}
}
Bundle extras = new Bundle();
MediaBrowserCompat.MediaItem item =
new MediaBrowserCompat.MediaItem(descBuilder.setMediaId(id)
.setDescription(songItem.getName())
.setSubtitle(songItem.getArtist())
.setIconUri(uri)
.setMediaUri(mediaUri)
.setMediaId(id)
.setTitle(songItem.getName())
.setExtras(extras)
.build(),MediaBrowserCompat.MediaItem.FLAG_PLAYABLE);
mediaItems.add(item);
}
saveResult.sendResult(mediaItems);
Когда я использую Uri.parse, я получаю такие uri:
/data/data/com. emrick.dj/albumart/Джуди Коллинз/Огни Эдема/Огни Эдема.jpg
/data/data/com.emrick.dj/audio/Джуди Коллинз/Огни Эдема Eden/From A Distance.mp3
Когда я использую вызов Uri.fromFile, я получаю такие uri:
file:///data/data/com.emrick. dj/albumart/Judy%20Collins/Fires%20Of%20Eden/Fires%20Of%20Eden.jpg
file:///data/data/com.emrick.dj/audio/Judy%20Collins/Fires%20Of%20Eden/From%20A%20Distance.mp3
Кроме того, работает приложение mp3-плеера (на основе которого оно основано) на моем телефоне, я вижу все обложки альбомов и воспроизводимые mp3-файлы, поэтому я считаю, что моя музыкальная база данных в порядке.
Подробнее здесь: https://stackoverflow.com/questions/793 ... rt-appears
Мобильная версия