Концепция 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, которые помогут расширить мое понимание, я буду очень признателен.

0 ответов

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