将所有音乐列为不在Android播放列表中的列表

时间:2012-05-22 00:02:15

标签: android sqlite playlist android-contentprovider android-cursorloader

我希望使用CursorLoader获取不在给定播放列表中的所有音乐。有可能吗?

我们可以使用以下代码获取列表中的所有音乐

loader = new CursorLoader(context, MediaStore.Audio.Playlists.Members
                .getContentUri("external", playlistID), proj,
                MediaStore.Audio.Media.IS_MUSIC + " != 0 ", null, ORDER_BY);

但我需要做相反的事情,即获取不在给定播放列表中的所有音乐。我怎么能这样做?

1 个答案:

答案 0 :(得分:1)

我无法帮助你修复你的LowAcceptRateException - 这是一个严重的失败,这可能会干扰长期回答的问题 - 但如果你不介意做那些难以维护的事情,滥用MediaProvider中的内部功能,您可以这样做,以获取(特定)播放列表中的歌曲。

loader = new CursorLoader(context, Audio.Media.EXTERNAL_CONTENT_URI, proj,
            Media._ID + " NOT IN (SELECT audio_id FROM audio_playlists_map WHERE playlist_id=?) AND " + 
            MediaStore.Audio.Media.IS_MUSIC + " != 0 ", 
            new String[]{String.valueOf(playlistID}, ORDER_BY);

修改:已将audio_playlist_map更正为audio_playlists_map