【问题标题】:get genre_id and audio_id from audio_genres_map from mediastore从 mediastore 中的 audio_genres_map 获取流派 ID 和音频 ID
【发布时间】:2016-04-16 23:41:46
【问题描述】:

我想在一次查询中从 mediastore 中检索整个 audio_genres_map 表。我有所有的音频信息和流派信息,但缺少的是映射。我可以在多个查询中做到这一点。我想实现一个查询

【问题讨论】:

    标签: android mediastore


    【解决方案1】:

    使用以下查询设法解决了这个问题

    String[] genresProjection = {
                Audio.Genres.Members.AUDIO_ID,
                Audio.Genres.Members.GENRE_ID
        };
    context.getContentResolver().query(Uri.parse("content://media/external/audio/genres/all/members"), genresProjection, null, null, null);
    

    【讨论】:

      【解决方案2】:

      或使用 MediaStore.Audio 检索所有流派

          public Cursor getGenrecursor(Context context) {
          ContentResolver cr = context.getContentResolver();
          Uri uri = MediaStore.Audio.Genres.getContentUri("external");
          String genre = MediaStore.Audio.Genres.NAME;
          final String[] columns = { "_id", genre };
          return  cr.query(uri, columns, null, null, null);
      }
      

      【讨论】:

      • 这不是问题
      • 其实这对其他相关问题非常有帮助
      【解决方案3】:

      并扩展您的问题,使用genre_id 带回更多详细信息

              public Cursor getgenre_TrackCursor(Context context, long genreID) {
          final String track_id = MediaStore.Audio.Genres.Members._ID;
          final String track_no = MediaStore.Audio.Genres.Members.TRACK;
          final String track_name = MediaStore.Audio.Genres.Members.TITLE;
          final String artist = MediaStore.Audio.Genres.Members.ARTIST;
          final String duration = MediaStore.Audio.Genres.Members.DURATION;
          final String album = MediaStore.Audio.Genres.Members.ALBUM;
          final String composer = MediaStore.Audio.Genres.Members.COMPOSER;
          final String year = MediaStore.Audio.Genres.Members.YEAR;
          final String path = MediaStore.Audio.Genres.Members.DATA;
          final ContentResolver resolve = context.getContentResolver();
          Uri uri = MediaStore.Audio.Genres.Members.getContentUri("external",
                  genreID);
          final String[] columns = { track_id, track_no, artist, track_name,
                  album, duration, year };
          return resolve.query(uri, columns, null, null, null);
      }
      

      【讨论】:

      • 我已经有了所有的细节。你的方法会导致很多我不想要的查询。我只是想将所有信息歌曲与我拥有的流派进行映射。无论如何我解决了我的问题并发布了答案
      猜你喜欢
      • 1970-01-01
      • 2016-11-21
      • 2015-02-02
      • 2020-11-04
      • 1970-01-01
      • 2013-02-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多