私はアンドロイド開発にはかなり新しいです。私は現在、メディアプレーヤーを作りようとしています。私の次の目標は、アイテムが追加され、削除されるプレイリストシステムを実装することです。また、onCompleteListener()がトリガーされたときにアイテムを自動削除することもできます。私は現在、私はそれが私がListViewコントロール内の項目をクリックすることができ、それがサービスを経由して、曲の再生を開始できることをこのように設定している。この時点で、ContentResolverのMP3ファイル用のダイナミックプレイリストAndroid
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());
}
}
を使用してSDカードから曲を引っ張っています。私の質問は、歌URIと位置のデータを保存する最良の方法は何ですか。また、onDestroy()の後であっても、アプリケーションが再起動したときに最後の位置にプレイリストを保存できるようにすることもできます。私は、どのような種類のデータセットがそのデータを保存するのに最もよく使われるのか、それをどのように取得するのかはわかりません。どんな助けでも大歓迎です!
私はプレイリストにSQLiteを使用する予定ですが、私はフォーマットについて疑問に思っています。私は、注文番号を割り当てて、注文を追跡すると思ったが、歌が完成したら、他のエントリーのすべてを更新しなければならず、これはかさばるだろう。私が考えることのできる代替案は、永遠にそれらを増やすことですが、やはり最終的にはかさばります。それについてどうやって行きますか? –
これを解決するために、私はトラックのために別のテーブルを作るのが好きです。そのため、ソングのデータとトラックで表を作成するのではなく、songIdとtrackNumberの列のみの表を作成します。外部キーとしてのSongId列は、ソングデータテーブルのソングを指します。 –