音频播放器播放列表添加单首歌曲重复插入问题求助
解决播放列表添加歌曲重复的问题
嘿,我一眼就揪出问题啦——你的代码里不小心执行了两次插入歌曲的操作,这就是为啥每次添加单首歌都会出现两份副本!
问题根源
看看你这段代码里的关键部分:
public static void AddSongToPlaylist(long songID, long pID, Context context ){ Uri pUri = MediaStore.Audio.Playlists.Members.getContentUri("external", pID); ContentResolver resolver = context.getContentResolver(); ContentValues values = new ContentValues(); String[] cols = new String[] { "count(*)" }; Cursor cur = resolver.query(pUri, cols, null, null, null); cur.moveToFirst(); final int base = cur.getInt(0)+1; cur.close(); values.put(MediaStore.Audio.Playlists.Members.PLAY_ORDER,base); values.put(MediaStore.Audio.Playlists.Members.AUDIO_ID, songID); resolver.insert(pUri,values); // 第一次插入歌曲 resolver.notifyChange(Uri.parse("content://media"), null); Log.i("URI:",resolver.insert(pUri, values)+""); // 第二次插入!这里是重复的根源 Toast.makeText(context, "Song Added", Toast.LENGTH_SHORT).show(); Log.i("Song ID:", String.valueOf(songID)); }
你在第12行已经调用resolver.insert(pUri,values)完成了歌曲插入,结果在第14行的日志代码里又重复调用了一次resolver.insert(pUri, values)——两次独立的插入操作,自然会把同一首歌两次加到播放列表里。
修正后的代码
只需要保留一次插入操作,把插入结果存到变量里,再用这个变量打日志就搞定了:
public static void AddSongToPlaylist(long songID, long pID, Context context ){ Uri pUri = MediaStore.Audio.Playlists.Members.getContentUri("external", pID); ContentResolver resolver = context.getContentResolver(); ContentValues values = new ContentValues(); String[] cols = new String[] { "count(*)" }; Cursor cur = resolver.query(pUri, cols, null, null, null); cur.moveToFirst(); final int base = cur.getInt(0)+1; cur.close(); values.put(MediaStore.Audio.Playlists.Members.PLAY_ORDER,base); values.put(MediaStore.Audio.Playlists.Members.AUDIO_ID, songID); // 只执行一次插入,把结果存到变量 Uri insertedUri = resolver.insert(pUri,values); resolver.notifyChange(Uri.parse("content://media"), null); Log.i("URI:", insertedUri + ""); // 用之前的插入结果打日志 Toast.makeText(context, "Song Added", Toast.LENGTH_SHORT).show(); Log.i("Song ID:", String.valueOf(songID)); }
这样修改后,每次添加歌曲只会执行一次插入操作,播放列表里就不会再出现重复的歌曲条目啦。
内容的提问来源于stack exchange,提问作者Rektirino
相关产品推荐
相关产品推荐

