【发布时间】:2014-01-06 03:23:35
【问题描述】:
我正在尝试构建一个音乐播放器应用程序,我想添加一个功能以便将歌曲添加到播放列表中。代码如下:
public static void addToPlaylist(ContentResolver resolver,SongDetails songDetails,int playlistId) {
String[] cols = new String[] {
"count(*)"
};
Uri uri = MediaStore.Audio.Playlists.Members.getContentUri("external", playlistId);
Cursor cur = resolver.query(uri, cols, null, null, null);
cur.moveToFirst();
final int base = cur.getInt(0);
cur.close();
ContentValues values = new ContentValues();
values.put(MediaStore.Audio.Playlists.Members.PLAY_ORDER, Integer.valueOf(base + songDetails.getId()));
values.put(MediaStore.Audio.Playlists.Members.AUDIO_ID, songDetails.getId());
values.put(MediaStore.Audio.Playlists.Members.DISPLAY_NAME, songDetails.getSongTitle());
values.put(MediaStore.Audio.Playlists.Members.ARTIST, songDetails.getArtistName());
values.put(MediaStore.Audio.Playlists.Members.DATA, songDetails.getSongData());
Log.i("URI:",resolver.insert(uri, values)+"");
}
在日志中我总是得到:
URI: null
这意味着这首歌没有添加到播放列表中。有人知道为什么没有添加这首歌吗?
【问题讨论】:
-
你不想在
PLAY_ORDER中加入base + 1吗? -
它也返回了 null
-
你在哪里设置 songDetails
id? -
我在调用此代码的活动中设置了它,就在使用此代码之前。
-
所以,你是说有必填字段,是什么?!
标签: java android playlist mediastore