Динамические списки воспроизведения для файлов MP3 Android

Я довольно новичок в разработке Android, и в настоящее время я пытаюсь сделать медиаплеер. Моя следующая цель - реализовать систему списков воспроизведения, в которую элементы можно добавлять, а также удалять, и которые можно автоматически удалять при запуске onCompleteListener (). Я в настоящее время вытаскиваю песни с SD-карты с помощью contentResolver

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());
        }
    }

На этом этапе я настроил его таким образом, чтобы я мог щелкнуть элемент в списке и он мог начать воспроизведение песни через службу. Мой вопрос заключается в том, каков наилучший способ хранения данных URI и положения песни. Я также хотел бы, чтобы приложение могло сохранять последнюю позицию плейлистов при перезапуске приложения, даже после onDestroy (). Я не уверен, какие наборы данных лучше всего использовать для хранения этих данных и как их получить. Любая помощь приветствуется!

1 ответ

Решение

Вам необходимо сохранить данные песни на устройстве.

Платформа Android предлагает несколько вариантов и стратегий для сохранения:

  • Общие предпочтения - легко сохраняйте базовые данные в виде пар ключ-значение в частном постоянном словаре.
  • Локальные файлы - сохраняйте произвольные файлы во внутреннем или внешнем хранилище устройства.
  • База данных SQLite - Сохраняет данные в таблицах в конкретной базе данных приложения.
  • ORM - Опишите и сохраните объекты модели, используя синтаксис запроса / обновления более высокого уровня.

Случаи применения

С каждым вариантом хранения обычно связаны следующие варианты использования:

  • Общие настройки - используются для настроек приложения, ключей и информации о сеансе.
  • Локальные файлы - часто используются для кэширования больших двоичных данных или файлов данных (например, кеш образа диска)
  • База данных SQLite - используется для сложных локальных манипуляций с данными или для необработанной скорости
  • ORM - используется для локального хранения простых реляционных данных, чтобы уменьшить шаблон SQL

Подробнее: Сохранение данных на устройстве.


Вы можете использовать один из вариантов, но для ваших целей лучше использовать базу данных SQLite или ORM.

Вы можете посетить Локальные базы данных с SQLiteOpenHelper для базы данных SQLite.

Для ORM вы можете попробовать greenDAO.

Другие вопросы по тегам