【问题标题】:Android: MediaStore is missing artists and albumsAndroid:MediaStore 缺少艺术家和专辑
【发布时间】:2012-02-15 20:43:05
【问题描述】:

我目前正在进行的一个项目需要应用程序来发现 Android 设备上的所有音轨。除了曲目之外,它还必须能够按专辑和艺术家对它们进行分组。

我找到了 MediaStore 内容提供程序,并着手创建一个数据库助手实用程序类来快速返回曲目、专辑和艺术家的 ID。我已经能够查询返回 some 结果的媒体存储,但似乎并非所有音频信息都存储在那里。

例如,查询所有艺术家只返回 9 个结果,但 Android 音乐播放器应用程序返回 27 个。

我正在使用以下代码查询艺术家:

ContentResolver resolver = getContentResolver();
String[] projection = new String[]{MediaStore.Audio.ArtistColumns.ARTIST};
Uri uri = android.provider.MediaStore.Audio.Albums.EXTERNAL_CONTENT_URI;

Cursor c = null;

    try {
        c = resolver.query(uri, projection, null, null, null);
    } 
    catch (UnsupportedOperationException e) {
        Log.e("DatabaseHelper", "query: " + e);
        c = null;
    }

    if(c != null) {
        while(c.isAfterLast() == false) {
            Log.e("ARTIST", "NAME: " + cursor.getString(0));
            cursor.moveToNext();
        }
    }

似乎媒体扫描仪(在我的设备启动时运行)似乎没有检测到我的大部分音频库。我做错了吗?

我只是想快速有效地找到所有音轨、音频专辑和音频艺术家。如果 MediaStore 不能帮助我,那么我担心我将不得不实现某种形式的文件扫描器来遍历目录结构并构建我自己的数据库,但我不想这样做;)

任何想法将不胜感激。

谢谢。

【问题讨论】:

    标签: android sqlite mediastore


    【解决方案1】:

    您可能还应该查询 android.provider.MediaStore.Audio.Albums.INTERNAL_CONTENT_URI 以使其余部分在媒体播放器中可见。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-24
      • 1970-01-01
      • 2013-06-02
      • 1970-01-01
      • 2015-01-30
      • 1970-01-01
      相关资源
      最近更新 更多