早些时候,使用 boundService 这可以很容易地实现。但是使用 MediaBrowserService 我无法访问外部的 getDuration,没有它我无法更新搜索栏。
问问题
942 次
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 回答