MediaBrowserService在onLoadChildren

时间:2018-03-30 14:56:20

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

我正在尝试制作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调用来获取歌曲列表,或者只是硬编码假歌曲来进行测试。我正在尝试允许该服务浏览设备本身的音乐文件。

1 个答案:

答案 0 :(得分:0)

我还尝试在我的应用程序中做完全相同的事情,撞到了与您相同的墙。最后,我弄清楚了如何使用Android的新Paging library来做到这一点。您确实必须在服务端使用带有ContentResolver的游标,以获取设备上的媒体项,但是为了不迭代所有游标的记录,只是为了返回onLoadChildren()方法中的子代,我使用了分页库,仅返回用户在客户端/ UI端此时对此感兴趣的块。您可以在我写的post中阅读有关它的内容,并在其中用代码示例演示这一概念。