如何在Activity中调用mediaBrowserService中的getDuration?

时间:2017-01-27 07:38:48

标签: android-service android-mediaplayer android-seekbar android-mediasession mediabrowserservice

早些时候,使用boundService可以轻松实现。但是使用MediaBrowserService我无法访问外部的getDuration,否则我无法更新搜索栏。

1 个答案:

答案 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 解释如何整体运作