MediaStore:从播放列表中删除所有识别歌曲

时间:2016-03-21 20:33:24

标签: java android android-contentresolver playlist mediastore

如果我在播放列表中有两首带有相同audioID的歌曲,并且我想删除只有一首 2首歌曲,那么我应该更改此代码?

static public int removeSongFromPlaylist(Context ctx, long playlist_id, long song_id) {
        ContentResolver resolver = ctx.getContentResolver();
        Uri uri = MediaStore.Audio.Playlists.Members.getContentUri("external", playlist_id);

        int res = resolver.delete(uri, MediaStore.Audio.Playlists.Members.AUDIO_ID+" = "+song_id, null);
        reloadPlaylistList(ctx);
        return res;
    }

因为这会删除带有参数给出的audioID的所有歌曲。

我考虑过检查删除了多少首歌曲,如果它们超过1则我只是再次添加它们。但这会弄乱播放列表的顺序,我认为它不是很有效。

1 个答案:

答案 0 :(得分:2)

delete(Uri url, String where, String[] selectionArgs)

Uri uri = ...
String where = "song_id=? LIMIT 1";
String[] args = new String{song_id};

现在resolver(uri, where, args);