我对android开发很陌生,我目前正在尝试制作一个媒体播放器。我的下一个目标是实现一个播放列表系统,可以添加和删除项目,并且可以在触发 onCompleteListener() 时自动删除。我目前正在使用 contentResolver 从 SD 卡中提取歌曲
public void getSongList(){
ContentResolver musicResolver=getContentResolver();
Uri musicUri= MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;
Cursor musicCursor=musicResolver.query(musicUri,null,null,null,null);
if(musicCursor!=null && musicCursor.moveToFirst()){
//get columns
int titleColumn = musicCursor.getColumnIndex
(android.provider.MediaStore.Audio.Media.TITLE);
int idColumn = musicCursor.getColumnIndex
(android.provider.MediaStore.Audio.Media._ID);
int artistColumn = musicCursor.getColumnIndex
(android.provider.MediaStore.Audio.Media.ARTIST);
//add songs to list
do {
long thisId = musicCursor.getLong(idColumn);
String thisTitle = musicCursor.getString(titleColumn);
String thisArtist = musicCursor.getString(artistColumn);
songList.add(new Song(thisId, thisTitle, thisArtist));
}
while (musicCursor.moveToNext());
}
}
此时我已经设置好了,因此我可以单击 listView 中的项目,它可以开始通过服务播放歌曲。我的问题是存储歌曲 URI 和位置数据的最佳方式是什么。我还希望应用程序能够在应用程序重新启动时存储播放列表的最后位置,即使在 onDestroy() 之后也是如此。我不确定哪种数据集最适合存储该数据,以及如何检索它。任何帮助将非常感激!