[英]Mediastore albums and media columns
太檢索我使用的相冊ID:
String SONG_ALBUMID = MediaStore.Audio.Albums.ALBUM_ID;
但是MediaStore.Audio.Albums.ALBUM_ID和MediaStore.Audio.Media.ALBUM_ID有什么區別
謝謝,
MediaStore.Audio.Albums.ALBUM_ID是專輯表中的專輯ID,MediaStore.Audio.Media.ALBUM_ID將是文件表中的“外鍵” Album_id。通常,關系數據庫的設計是在訪問文件表時,我們需要的是abum_id來訪問唱片集表並檢索所有相關的唱片集信息,例如album_title。android數據庫中的表文件包含許多詳細信息,例如
_id INTEGER
_data TEXT
_size INTEGER
format INTEGER
parent INTEGER
date_added INTEGER
date_modified INTEGER
mime_type TEXT
title TEXT
description TEXT
_display_name TEXT
picasa_id TEXT
orientation INTEGER
latitude DOUBLE
longitude DOUBLE
datetaken INTEGER
mini_thumb_magic INTEGER
bucket_id TEXT
bucket_display_name TEXT
isprivate INTEGER
title_key TEXT
artist_id INTEGER
album_id INTEGER
composer TEXT
track INTEGER
year INTEGER
is_ringtone INTEGER
is_music INTEGER
is_alarm INTEGER
is_notification INTEGER
is_podcast INTEGER
album_artist TEXT
duration INTEGER
bookmark INTEGER
artist TEXT
album TEXT
resolution TEXT
tags TEXT
category TEXT
language TEXT
mini_thumb_data TEXT
name TEXT
media_type INTEGER
old_id INTEGER
storage_id INTEGER
is_drm INTEGER
width INTEGER
height INTEGER
這是兩種方法:(在resolver.query中包括請求的列)
public String getalbum_id(Cursor pcursor) {
int album_col = pcursor
.getColumnIndexOrThrow(MediaStore.Audio.Media.ALBUM_ID);
String album_id = pcursor.getString(album_col);
if (album_id.length() > 0) {
return album_id;
} else {
return "";
}
}
public String getAlbumIdfromPath(Context context, String datapath) {
ContentResolver cr = context.getContentResolver();
final String _id = MediaStore.Audio.Media._ID;
final String path = MediaStore.Audio.Media.DATA;
final String album_id = MediaStore.Audio.Media.ALBUM_ID;
final String[] columns = {_id, album_id};
final String[] trackpath = {"%" + datapath + "%"};
String where = path + " LIKE ?";
String stralbum_id = null;
Cursor crs = cr.query(uri, columns, where, trackpath, null);
if (crs != null && crs.moveToFirst()) {
stralbum_id = crs.getString(crs.getColumnIndexOrThrow(album_id));
crs.close();
}
return stralbum_id;
}
現在要顯示,我以前已經發布過,但是我使用的是Gilde庫。 它完成所有艱苦的工作。
// loading album cover using Glide library
String artist_id = (c.getString(c
.getColumnIndex(MediaStore.Audio.Artists._ID)));
Cursor albs = albums.getArtistsAlbumcursor(mContext, artist_id);
String stralbumId=null;
if(albs!=null && albs.moveToFirst()){
stralbumId= albs.getString(albs.getColumnIndexOrThrow(MediaStore.Audio.Media.ALBUM_ID));
}
Uri ImageUrl = plist.getAlbumUri(mContext, stralbumId);
if (ImageUrl != null) {
Glide.with(mContext)
.asBitmap()
.load(ImageUrl)
.into(image);
}
}
getAlbumuri在哪里:
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;
}
在模塊build.gradle中包含以下內容
implementation 'com.github.bumptech.glide:glide:4.5.0'
annotationProcessor 'com.github.bumptech.glide:compiler:4.7.1'
private final Uri uri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.