私はアンドロイド開発にまったく慣れていないので、現在メディアプレーヤーを作ろうとしています。私の次の目標は、アイテムを追加したり削除したりでき、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() の後であっても、アプリの再起動時にアプリケーションがプレイリストの最後の位置を保存できるようにしたいと考えています。そのデータを格納するためにどのような種類のデータ セットを使用するのが最適か、またそれを取得する方法がわかりません。どんな助けでも大歓迎です!