我在试着做一个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调用来获取歌曲列表,或者只是硬编码假歌来显示以进行测试。我正在尝试允许该服务浏览设备本身上的音乐文件。
发布于 2018-06-25 03:10:52
我也试着在我的应用程序中做完全相同的事情,遇到了和你一样的困难。最后,我想出了如何使用安卓的新Paging library来做到这一点。为了获取设备上的媒体项,您必须在服务端使用带有ContentResolver的游标,但是为了不只是为了在onLoadChildren()方法中返回子对象而迭代所有游标的记录,我使用分页库在客户端/UI端只返回用户感兴趣的块。您可以在我编写的post中了解到这一点,我还用代码示例演示了这一概念。
https://stackoverflow.com/questions/49576642
复制相似问题