1

我正在尝试创建一个简单的音频应用程序并引用 Google 的MediaBrowserService示例。我的问题是真正掌握MediaBrowserServiceCompat.onLoadChildren()MediaSessionCompat.Callback方法onAddQueueItemonRemoveQueueItem背后的概念

@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);
}

当我尝试将onAddQueueItemonRemoveQueueItem方法与onLoadChildren协调时,会出现大量混乱。onAddQueueItem() 是否自动生成通过onLoadChildren()方法中的result.sendResult()发送/可用的MediaBrowserCompat.MediaItems?还是我试图将两者联系起来让自己更加困惑?如果有人有博客/文章/youtube 视频可以帮助扩大我的理解,那将非常感激。

4

0 回答 0