【问题标题】:MediaBrowserService where to get the media files in onLoadChildrenMediaBrowserService 在哪里获取 onLoadChildren 中的媒体文件
【发布时间】:2018-03-30 14:56:20
【问题描述】:

我正在尝试制作 MediaBrowserService。过去,当我想在设备上实际显示所有音乐文件时,我会使用 ContentResolver 并从 MediaStore 加载光标。

我不知道应该在 MediaBrowserService 中的哪个位置执行此操作。

有方法:onLoadChildren

我找到的例子是这样的:

    @Override
public void onLoadChildren(
        @NonNull final String parentMediaId,
        @NonNull final Result<List<MediaBrowserCompat.MediaItem>> result) {
    result.sendResult(MusicLibrary.getMediaItems());
}

我的问题是,我是否在此方法中使用 ContentResolver 光标来返回 MediaItems 列表?或者是否有其他内部方法可用于通过设备获取所有音乐文件? 我在网上看到的唯一示例是执行 HTTP 调用以获取歌曲列表的流服务,或者它们只是硬编码假歌曲以显示以供测试。我正在尝试允许该服务浏览设备本身上的音乐文件。

【问题讨论】:

    标签: java android audio-player mediabrowserservice android-music-player


    【解决方案1】:

    我也尝试在我的应用程序中做同样的事情,和你一样碰壁。最后我想出了如何使用 Android 的新 Paging library 来做到这一点。您必须在服务端使用带有 ContentResolver 的游标才能获取设备上的媒体项目,但为了不迭代所有游标的记录只是为了在 onLoadChildren() 方法中返回子项,我使用分页库仅在客户端/UI 端返回用户此时感兴趣的块。您可以在我写的post 中了解它,我还通过代码示例演示了这个概念。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-12-06
      • 2011-04-06
      • 2012-07-04
      • 2018-01-21
      • 1970-01-01
      • 2016-06-20
      • 2018-06-28
      • 2014-03-08
      相关资源
      最近更新 更多