Необходимо доработать приложение:
О приложении
Приложение представляет собой медиа-плеер, построенный на базе ExoPlayer3. Главный плеер представляет из себя tabview представление для каждого из типов медиа-элементов: треки, плейлисты, исполнители и т.д.
Приложение обладает дополнительным функционалом:
1.Есть отдельный fragment view, который измеряет пульс посредством прикладывания пальца к камере и измерения кол-ва красного и сохраняет в примитивную БД.
2.Есть отдельный fragment view, который отображает данные о собранном пульсе из БД
3.При индексации треков из памяти устройства происходит считывание пиковых значений амплитуды звуковых волн в треке и вычисление средней BPM по треку.
4.Запись в метаданные(Extras) MediaItem среднего BPM для последующего использования.
Разработка
Необходимо проработать реализацию БД для приложения посредством использования библиотеки ROOM. А также перевести некоторые процессы на background service. Требуется реализовать следующий функционал:
- Исправление view:
1. Во втором пункте доп. функционала был указан fragment view который отображает данные из БД и отображает их в виде list view. Требуется обернуть это в scroll view.
- Работа с БД
1. Во втором пункте доп. функционала был указан fragment view который отображает данные из БД и отображает их в виде list view. Требуется проработать методы удаления и редактирования элементов данных.
2. В третьем пункте доп. функционала был указан метод считывания BPM и запись этого значения в метаданные. Требуется проработать следующую реализацию: Реализовать в ROOM DB таблицу, примерно следующего вида:
ID(PK) | FilePath | FileBPM
В данной реализации ID и FilePath это NOT NULL колонки, которые обязательно должны быть заполнены.
Вместо считывания амплитуды требуется разместить функционал заполнения таблицы вышеописанной таблицы.
- Фоновые процессы
1. В предыдущем этапе работы БД в пункте 2 мы проработали таблицу в БД, которая заполнена данными о треках. Требуется перенести функцию считывания амплитуды из основного потока, который блокирует отображение треков в background процесс, который будет в зоне уведомлений отображать процесс считывания треков и примерное время, которое осталось до считывания всего массива.
- Модификация PlayBack background service
1. Требуется реализовать в методах сервиса взаимодействия с текущим плейлистом функцию составления плейлиста из более подходящих к считанному пульсу, который описан в доп. функционале в пункте 1. Процесс должен быть такой Считывается пульс -> Считанный пульс записывается в shared prefs -> При открытии окна медиаплеера и нажатии на специализированную кнопку должен активироваться playback сервис, который будет составлять новый плейлист и замещать текущий, текущий, при замещении, просто сохранить, для корректного переключения обратно.
Опубликован 30.07.2024 в 12:04
Заказ находится в архиве