Pla*_*er1 3 android android-mediasession mediabrowserservicecompat
我在Android的开发初学者试图建立一个媒体播放器的实现MediaBrowser和MediaSession。
我对onGetRoot()和的功能感到困惑onLoadChildren()。
layman's term这两种方法的目的是什么。 onGetRoot()什么?我要记住的是,它是目录的根目录,对吗?onLoadChildren()什么?我想的是根目录中的音乐列表,对吗?onLoadchildren()返回实际的播放列表吗?参考:https://developer.android.com/guide/topics/media-apps/audio-app/building-a-mediabrowserservice
为了理解这一点,重要的是要清楚地理解a MediaItem代表什么。在参考文献中,提供了以下语句“您的服务负责将ID与适当的菜单节点或内容项相关联”。您需要使用MediaItem类来定义项目的层次结构(PLAYABLE或BROWSEABLE)。一个例子是
root(不是媒体项目,但可以订阅以返回最高级别的fo媒体项目)->歌曲(可浏览)专辑(可浏览)艺术家(可浏览)
如果订阅了专辑,MediaItem专辑将返回-> album1(可浏览),专辑2(可浏览)
在专辑1中,您将拥有可播放的MP3,例如-> song1.mp3(可播放)song2.mp3(可播放)
对于所有可浏览的MediaItem,我们可以选择“订阅”它们以获取所有子节点。当我们一个人动态地构建我们的UI时,这会有所帮助。
将这一概念与软件体系结构联系起来,您需要考虑将要访问onGetRoot和访问的内容onLoadChildren。它们是MediaBrowserService的一部分,因此,这些功能将由MediaBrowser进行交互。
1)onGetRoot()被称为获得访问提供的媒体的权限MediaBrowserService。它将返回一个“根ID”,可以订阅该根ID,并在层次结构的最高级别返回MediaItems。即,在上面的示例中,订阅根节点将返回歌曲,专辑和艺术家。
onLoadChildren() 因此,当我们选择订阅MediaItems以获取其子节点时,将调用。
2)这与根目录无关,而是一个“根ID”,用于订阅您自定义层次结构的顶层(根)
3)OnLoadChildren由MediaBrowser的subscription方法调用,并将返回所有子MediaItems(可浏览或可播放)。
4)OnLoadChildren如果愿意,可以返回播放列表。为此,定义一个可以浏览的mediaItem“播放列表名称”,它将返回该播放列表中的MediaItem。
| 归档时间: |
|
| 查看次数: |
785 次 |
| 最近记录: |