早些时候,使用boundService可以轻松实现。但是使用MediaBrowserService我无法访问外部的getDuration,否则我无法更新搜索栏。
答案 0 :(得分:2)
在MediaBrowserService上,当您更新MediaMetadata时,请添加当前媒体的持续时间。
MediaMetadataCompat.Builder metadataBuilder = new MediaMetadataCompat.Builder();
metadataBuilder.putLong(MediaMetadataCompat.METADATA_KEY_DURATION, track.durationMs);
在客户端,使用MediaBrowserCompat,您可以连接到MediaBrowserService并检索MediaSessionCompat.Token。使用令牌,您可以获得MediaSessionController,您可以从中获取包含当前媒体信息的MediaMetadataCompat。
int duration = (int) metadata.getLong(MediaMetadataCompat.METADATA_KEY_DURATION);
官方documentation有一个 ok 解释如何整体运作