Я занимаюсь разработкой своего рода медиаплеера для Android. Вопрос в том, как я могу получить обложку аудиофайла на Android. Например, медиа-плеер по умолчанию для Android показывает обложки альбомов при записи альбомов, как я могу получить это произведение искусства.обложка на андроиде
ответ
Uri sArtworkUri = Uri.parse("content://media/external/audio/albumart");
Uri uri = ContentUris.withAppendedId(sArtworkUri, album_id);
ContentResolver res = context.getContentResolver();
InputStream in = res.openInputStream(uri);
Bitmap artwork = BitmapFactory.decodeStream(in);
Более полный пример кода можно найти в Android источник музыки плеер здесь https://github.com/android/platform_packages_apps_music/blob/master/src/com/android/music/MusicUtils.java метод getArtworkQuick.
Я пробовал код выше, я могу получить обложку альбома, но не в правильном порядке на эмуляторе, на моей Galaxy S я могу увидеть обложку альбома для одного mp3, где у меня более 100 файлов. Еще одно это на моей Galaxy S, показывающее изображение для неправильной песни (только самая верхняя песня). Любое предложение решить эту проблему? –
Это была моя ошибка, вместо id альбома я передавал идентификатор песни. Теперь он работает отлично. спасибо –
эй ... как вы получаете альбом для конкретной песни? –
Android только распознает файлы под названием «AlbumArt.jpg» в качестве обложек альбомов. Просто поместите фотографии с этим именем в папку альбома, и все будет в порядке.
Извините, может быть, вопрос был немного запутанным. Я разрабатываю приложение, и я хочу получить обложку альбома из своего приложения. –
Я не знаю, читаете ли вы, что Google делает Stackoverflow official Android app development Q&A medium, но для начинающих вопросов ... Теперь я ничего не знаю о разработке в Andriod, но быстрый поиск на сайте Android Developers, я нашел это:
Надеюсь, это поможет.
Да, я также заметил, что есть MediaStore.Audio.AudioColumns.ALBUM_ART, но он не существует на самом деле.ContentResolver.query (MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, null, null, null, null); - возвращает курсор со всеми столбцами, а ALBUM_ART - нет. –
Есть только столбцы ALBUM, ALBUM_ID, ALBUM_KEY в курсоре, но нет ALBUM_ART –
Основываясь на ваших комментариях к другим, кажется, что ваш вопрос о Android и о том, как получить обложку альбома в целом. Возможно, полезно будет this article по извлечению обложек альбомов из Amazon. Когда у вас есть местная копия и сохраните ее, как предложил Ник, я считаю, что вы должны получить ее так, как предложил Фуджи.
Нет, я не хочу получать обложку альбома вообще. В тегах ID3v2 для обложки есть опция. Android разбирает большую часть поля ID3v2, и вопрос заключается в том, как получить встроенное скрытое искусство в теге ID3v2, не используя amazon или некоторые другие веб-службы. –
Возможно, вопрос немного запутан, может быть, правильный будет извлекать «Прикрепленное изображение» из Тег ID3v2 на Android. http://www.id3.org/id3v2.3.0 для получения дополнительной информации о прикрепленном изображении –
Здесь я могу прикрепить одну функцию, которая возвращает обложку альбома из магазина мультимедиа.
Здесь, в функции, нам просто нужно передать album_id, который мы получаем из магазина Media.
public Bitmap getAlbumart(Long album_id)
{
Bitmap bm = null;
try
{
final Uri sArtworkUri = Uri
.parse("content://media/external/audio/albumart");
Uri uri = ContentUris.withAppendedId(sArtworkUri, album_id);
ParcelFileDescriptor pfd = context.getContentResolver()
.openFileDescriptor(uri, "r");
if (pfd != null)
{
FileDescriptor fd = pfd.getFileDescriptor();
bm = BitmapFactory.decodeFileDescriptor(fd);
}
} catch (Exception e) {
}
return bm;
}
Вы можете использовать
MediaMetadataRetriever
класс и получить отслеживать данные есть название, исполнитель, альбом, изображение
Bitmap GetImage(String filepath) //filepath is path of music file
{
Bitmap image;
MediaMetadataRetriever mData=new MediaMetadataRetriever();
mData.setDataSource(filePath);
try{
byte art[]=mData.getEmbeddedPicture();
image=BitmapFactory.decodeByteArray(art, 0, art.length);
}
catch(Exception e)
{
image=null;
}
return image;
}
Я не знаю, почему все делают это настолько сложным, что вы можете использовать Glide для achi Накануне это простой и эффективный способ только с 1 строки кода
Объявить этот путь в App Константы -
final public static Uri sArtworkUri = Uri
.parse("content://media/external/audio/albumart");
Get Image Uri с помощью альбома ID
Uri uri = ContentUris.withAppendedId(PlayerConstants.sArtworkUri,
listOfAlbums.get(position).getAlbumID());
Теперь просто отображать обложки альбомов используя ури: -
Glide.with(context).load(uri).placeholder(R.drawable.art_default).error(R.drawable.art_default)
.crossFade().centerCrop().into(holder.albumImage);
Glide будет обрабатывать кеширование, scali ng и ленивая загрузка изображений для вас.
Надеюсь, что это поможет кому-то.
Спасибо, что это работает для меня .... – redblood
- 1. Image обложка эффект андроид
- 2. Обложка альбома на MPMoviePlayerController
- 3. Обложка кода на Android
- 4. Social Engine обложка изображения обложка
- 5. Render обложка книги на коробке
- 6. обложка фонового размера на Firefox
- 7. Обложка Ссылка на мой сайт
- 8. Обложка альбома
- 9. Минимальное обложка
- 10. Размер фона: обложка крышки
- 11. HTML - обложка для изображения на объекте
- 12. Обложка длинного текста на холсте Android
- 13. Обложка сканирования на матрицу travis build
- 14. Обложка базы кнопок на текст ссылки?
- 15. Добавить темный обложка фона на существующий сайт
- 16. Обложка фона - не работает на то есть
- 17. Фоновая обложка, не работающая на мобильных устройствах
- 18. CSS фон обложка
- 19. IE8 размер фона: обложка
- 20. Обложка DynamoDB для Node.js
- 21. Сделайте снимок Facebook Обложка
- 22. Обложка альбома Views.player
- 23. Обложка обложки альбома
- 24. Пояснение Devel :: Обложка
- 25. Обложка кода колышки Android
- 26. Минимальная вершинная обложка дерева
- 27. Обложка с фоном
- 28. фон Размер - Обложка
- 29. Обложка фляжки от JSON
- 30. css фон размер обложка
Поскольку, похоже, есть небольшая путаница в отношении того, в какой части вашего приложения вам нужна помощь, вы можете соответствующим образом обновить свой вопрос. –
вы также можете попробовать следующее: http://stackoverflow.com/questions/10209176/extract-album-cover-from-mp3-file-in-android?rq=1 – Chepech