Я занимаюсь разработкой приложения для Android, в котором я могу / могу использовать только один экземпляр MediaPlayer (экземпляр Singleton).
static MediaPlayer mp;
public static MediaPlayer getMediaPlayer() {
if (mp == null) {
mp = new MediaPlayer();
}
return mp;
}
Теперь это действие можно назвать для двух целей
- изнутри приложения (скажем, ABC)
- из любого другого приложения (скажем, XYZ) для предварительного просмотра
Этот экземпляр медиаплеера должен воспроизводить видео или аудио.
Итак, я создал класс, который обрабатывает запрос (параметризованный конструктор для проверки необходимого экземпляра аудио или видео) и на основе запроса создает требуемый экземпляр.
Но проблема возникает, когда пользователь внутри приложения воспроизводит аудиофайл, а пользователь запускает другое приложение (XYZ) и запрашивает воспроизведение видео.
Теперь я сохраняю предыдущее состояние MediaPlayer (например, какой файл он воспроизводил, текущую позицию и т. Д.) И выпускаю MediaPlayer для использования в приложении XYZ для воспроизведения видео. И как только пользователь прекращает воспроизведение видео, ABC возобновляет воспроизведение аудиофайла на основе сохраненного экземпляра.
Так это правильный подход? Или мне нужно изменить архитектуру этой задачи?
Пожалуйста, предложите w.r.t. шаблоны дизайна