我正在我的音频播放器中处理播放列表。我返回了一个代码以将歌曲添加到播放列表。代码工作正常,但我有一个小问题。问题是,如果我将一首歌曲添加到播放列表,则会添加同一首歌曲的两个副本。就像,如果我将歌曲 A 添加到播放列表,然后打开添加歌曲 A 的播放列表,我可以看到歌曲 A 的两个副本。
法典:
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));
}
停止通过Log.i()
再次调用resolver.insert()
。