2

早些时候,使用 boundService 这可以很容易地实现。但是使用 MediaBrowserService 我无法访问外部的 getDuration,没有它我无法更新搜索栏。

4

1 回答 1

3

在 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);

官方文档对它的整体工作方式有一个很好的解释

于 2017-02-13T14:29:26.627 回答