- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在构建一个音乐播放器应用。我正在尝试用歌曲的专辑封面填充 recyclerView
。我使用下面给出的代码成功地做到了这一点。但是有些歌曲没有嵌入专辑封面,文件夹中没有任何专辑封面。因此,在将专辑封面添加到 recyclerView
之前,我尝试检查专辑封面是否为 null。如果专辑封面为空,应用程序将自动从互联网上获取它。我尝试检查专辑封面是否为空,但每次它都会给我一个 uri
专辑封面是否可用。
从 mediastore 获取专辑封面的代码:
String[] projection = {MediaStore.Audio.Media._ID,
MediaStore.Audio.Media.TITLE,
MediaStore.Audio.Media.ARTIST,
MediaStore.Audio.Media.ALBUM,
MediaStore.Audio.Media.DURATION,
MediaStore.Audio.Media.DATA,
MediaStore.Audio.Media.ALBUM_ID};
Cursor cursor = getActivity().getContentResolver().query(uri, projection, selection, whereVal, null);
if (cursor != null) {
if (cursor.moveToFirst()) {
do {
long id = cursor.getLong(cursor.getColumnIndex(MediaStore.Audio.Media._ID));
String name = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.TITLE));
String artist = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.ARTIST));
String album = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.ALBUM));
Long duration = cursor.getLong(cursor.getColumnIndex(MediaStore.Audio.Media.DURATION));
String data = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.DATA));
Long albumId = cursor.getLong(cursor.getColumnIndex(MediaStore.Audio.Media.ALBUM_ID));
String albumArtUri = String.valueOf(ContentUris.withAppendedId(Uri.parse("content://media/external/audio/albumart"),albumId));
SongInfoModel s = new SongInfoModel(id, name, artist, null, album, null, duration, data, albumId,albumArtUri);
SongList.add(s);
} while (cursor.moveToNext());
}
albumArtUri 的值永远不会为空。
它总是给出以下 uri:
content://media/external/audio/albumart/12
content://media/external/audio/albumart/5
content://media/external/audio/albumart/6
content://media/external/audio/albumart/3
content://media/external/audio/albumart/8
content://media/external/audio/albumart/9
但在这些 uri 中,content://media/external/audio/albumart/9
没有专辑封面。它总是显示我说的使用 Glide
所以我的问题是,如何在填充 recyclerView
之前检查专辑封面是否可用(作为嵌入艺术或在歌曲文件夹中)?我知道我可以使用 Glide
占位符并且我正在使用它。但如果专辑封面离线不可用,我也想从互联网上获取专辑封面,这就是我需要检查的原因,以便我可以将互联网链接添加到数组列表中。希望你们明白我想说的话。
谢谢!
编辑:
我发现下面给出的代码 fragment 会返回是否存在专辑封面,但它会消耗大量时间。
public String fetchAlbumArt(long albumID){
String art;
Cursor cur = getActivity().getContentResolver().query(MediaStore.Audio.Albums.EXTERNAL_CONTENT_URI, new String[]
{MediaStore.Audio.Albums.ALBUM_ART}, MediaStore.Audio.Albums._ID + "=?", new String[] {String.valueOf(albumID)}, null);
cur.moveToFirst();
art = cur.getString(cur.getColumnIndex(MediaStore.Audio.Albums.ALBUM_ART));
cur.close();
return art;
}
最佳答案
最简单的方法:
// loading album cover using Glide library
String stralbumId = c.getString(c
.getColumnIndex(BaseColumns._ID));
Uri ImageUrl = getAlbumUri(mContext, stralbumId);
if (ImageUrl != null) {
Glide.with(mContext)
.asBitmap()
.load(ImageUrl)
.into(image);
}
和
public Uri getAlbumUri(Context mContext,String album_id){
if(mContext!=null) {
Uri sArtworkUri = Uri.parse("content://media/external/audio/albumart");
Uri imageUri = Uri.withAppendedPath(sArtworkUri, String.valueOf(album_id));
return imageUri;
}
return null;
关于android - 检查专辑封面是否存在?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50423453/
我正在学习 zend 框架 2 教程应用程序。我已经设置了我的相册模块目录如下: 当我启动我的 MAMP 服务器时,我遇到了一个错误, fatal error :未捕获的异常“Zend\ModuleM
我想创建一个 Java Swing 相册,但我无法找到正确的方法。我认为应该创建两个ArrayList,一个用于存储照片对象,另一个用于存储按钮。 之后我应该找到一种方法将每个图像分配给按钮并将它们添
我在一个文件夹中备份了所有 mp3 文件。 会不会有一个 bash 命令来自动移动他们自己的即时创建的乐队专辑标题目录中的所有文件? 正如您在图片中看到的,破折号之前的第一个单词是艺术家姓名,然后是专
我想知道我是否可以获取 mp3 文件信息,如专辑名称、艺术家、存储在 mp3 文件中的图像等等?如果有办法做到这一点,请帮忙。顺便说一句:我创建了一个名为 Entagged 的 Java 库,但我
我正在为一个乐队制作一个 iPhone 应用程序,其中列出了该乐队的歌曲。当用户触摸歌曲旁边的按钮时,我想打开 iTunes 并显示该歌曲。目前我正在使用这段代码: [[UIApplication共享
我正在尝试发布到 Facebook 页面上的相册(我可以毫无问题地发布到墙上 - 我拥有所有权限)。 Facebook 图形 API 表示相册 ID 是援助的值(value)。但是网址看起来像:htt
我正在开发一个使用 Vue 构建的供个人使用的 PWA,其功能基本上与 YouTube Music 相同,而无需每月付费。 我设置了一个带有 REST API 的服务器,该服务器可以根据查询搜索 Yo
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。 关闭 8 年前。
我只想要一段简单的代码,它可以从 mp3 文件中提供作者、专辑、年份、标题和流派。如果可以的话,以变量的形式,以便我可以使用它。我想做的就是让这些信息显示在标签中。例如。 lbl艺术家、lbl专辑、l
通过 1 为谁通过 ffmpeg 我需要合并 2 个音频并向其添加图片(专辑) 1-audio 2-audio output https://superuse
我仅使用 youtube-dl 从 youtube 视频中提取音频. 我想在下载后将元数据(即艺术家姓名和歌曲名称、年份、专辑、持续时间、流派)写入 mp3/m4a 文件。 我的尝试是从以下代码开始的
我是一名优秀的程序员,十分优秀!