Я разрабатываю простой музыкальный проигрыватель с архитектурой клиент-сервер (в Activity есть объект MediaControllerCompat
, который отправляет обратные вызовы на MediaSessionCompat
в MusicService
).Мне нужно изменить текущий список воспроизведения, когда пользователь выбирает другую папку.Итак, в активности есть объект MediaBrowserCompat.SubscriptionCallback
, и у меня есть метод onChildrenLoaded()
, когда я получаю новый Список песен.В этом методе мне нужно отправить обратный вызов в мультимедийную сессию, чтобы удалить музыку, которая была в предыдущем списке воспроизведения (см. Код).Это проблема MediaControllerCompat
является окончательным классом, и я не могу создать подкласс, где я бы добавил какой-то метод для решения своей проблемы.
override fun onChildrenLoaded(parentId: String, children: List<MediaBrowserCompat.MediaItem>) {
super.onChildrenLoaded(parentId, children)
//TODO: check is there some music in current playlist, if there is some music, clear playlist
//add all media
for (mediaItem in children) {
mediaController.addQueueItem(mediaItem.description)
}
//call prepare now so pressing play
mediaController.transportControls.prepare()
}