我目前正在创建一个音乐播放器,我正在使用光标检索设备上的音乐

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.ALBUMMediaStore.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/

10-10 23:29