Android上MP3文件的java动态播放列表
我对安卓系统的开发还很陌生,目前正在尝试制作一款媒体播放器。我的下一个目标是实现一个播放列表系统,在触发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
(安卓.provider.MediaStore.Audio.Media.TITLE);
int idColumn = musicCursor.getColumnIndex
(安卓.provider.MediaStore.Audio.Media._ID);
int artistColumn = musicCursor.getColumnIndex
(安卓.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());
}
}
在这一点上,我已经设置好了,这样我就可以点击列表视图中的项目,它就可以开始通过服务播放歌曲了。我的问题是存储歌曲URI和位置数据的最佳方式是什么。我还希望应用程序能够在应用程序重新启动时存储播放列表的最后位置,即使是在onDestroy()之后。我不确定什么样的数据集最适合用来存储这些数据,以及如何检索这些数据。任何帮助都将不胜感激
# 1 楼答案
您需要将歌曲数据保存到设备中
Android框架提供了几种持久性选项和策略:
用例
每个存储选项通常都有如下关联的用例:
阅读更多:Persisting Data To Device
您可以使用其中一个选项,但出于您的目的,SQLite数据库或ORM是更好的选项
您可以访问Local Databases with SQLiteOpenHelper获取SQLite数据库
对于ORM,您可以尝试greenDAO