Концепция MediaBrowserServiceCompat.onLoadChildren()
Я пытаюсь создать простое аудиоприложение и ссылаюсь на пример Google MediaBrowserService. Мой вопрос действительно заключается в понимании концепции методов MediaBrowserServiceCompat.onLoadChildren() и MediaSessionCompat.Callback для onAddQueueItem и onRemoveQueueItem
@Override
public void onLoadChildren(@NonNull final String parentMediaId,
@NonNull final Result<List<MediaBrowserCompat.MediaItem>> result) {
Log.d(TAG, "onLoadChildren(): ------------------->");
result.sendResult(MusicLibrary.getMediaItems());
}
@Override
public void onAddQueueItem(MediaDescriptionCompat description) {
mPlaylist.add(new MediaSessionCompat.QueueItem(description, description.hashCode()));
mQueueIndex = (mQueueIndex == -1) ? 0 : mQueueIndex;
mSession.setQueue(mPlaylist);
}
@Override
public void onRemoveQueueItem(MediaDescriptionCompat description) {
mPlaylist.remove(new MediaSessionCompat.QueueItem(description, description.hashCode()));
mQueueIndex = (mPlaylist.isEmpty()) ? -1 : mQueueIndex;
mSession.setQueue(mPlaylist);
}
Массовая путаница возникает, когда я пытаюсь согласовать методы onAddQueueItem и onRemoveQueueItem с onLoadChildren. Создает ли onAddQueueItem() автоматически MediaBrowserCompat.MediaItems, которые были отправлены / сделаны доступными через result.sendResult() в методе onLoadChildren ()? или я запутываю себя еще больше, пытаясь связать их? если у кого-то есть блоги / статьи / видео на YouTube, которые помогут расширить мое понимание, я буду очень признателен.