我目前正在创建一个音乐播放器,我正在使用光标检索设备上的音乐
mCursor = getContentResolver().query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,
requestedColumns, null, null, null);
在哪里?
private String[] requestedColumns =
{
MediaStore.Audio.Media.TITLE,
MediaStore.Audio.Media._ID,
MediaStore.Audio.Media.DATA,
MediaStore.Audio.Media.ALBUM,
MediaStore.Audio.Media.ALBUM_ID,
MediaStore.Audio.Media.ARTIST,
MediaStore.Audio.Media.ARTIST_ID,
MediaStore.Audio.Media.YEAR,
MediaStore.Audio.Media.DURATION,
};
现在一切正常,我正在成功地从我的设备/sd卡上检索音乐。我的问题是:有没有办法让专辑艺术家为一首特定的歌曲?现在我不是简单地指一首歌的某个部分的艺术家,而是一首歌所属的整个专辑背后的主要艺术家。似乎没有什么
MediaStore.Audio.Media.ALBUM_ARTIST
。附带说明:使用
MediaStore.Audio.Media.ALBUM
和MediaStore.Audio.ALBUMS
有什么区别(如果有的话)? 最佳答案
我认为您需要的是MediaStore.Audio.Albums.ARTIST
,您可以将其作为两阶段过程的第二部分来查找。
Cursor cursor = getActivity().managedQuery(
MediaStore.Audio.Albums.EXTERNAL_CONTENT_URI,
new String[] {MediaStore.Audio.Albums._ID, MediaStore.Audio.Albums.ARTIST},
MediaStore.Audio.Albums._ID+ "=?",
new String[] {albumId},
null);
其中
albumId
是歌曲的唱片ID(即您在前面的查询中得到的信息:MediaStore.Audio.Media.ALBUM_ID
将
MediaStore.Audio.ALBUMS
视为所有相册的元数据。MediaStore.Audio.Media.ALBUM
表示此音频文件来自的唱片集。Media
始终是每个单独文件的元数据。关于android - Android-从Cursor获取专辑歌手,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17392035/