如何从MediaSessionManager创建MediaController实例?

时间:2014-10-26 01:49:53

标签: android android-5.0-lollipop

我正在尝试从RemoteController移动到Lollipop的MediaController但是我在获取MediaController实例时遇到了麻烦。在MediaController中它说:

  

如果您持有“android.permission.MEDIA_CONTENT_CONTROL”权限或者是启用的通知侦听器或直接从会话所有者获取MediaSession.Token,则可以通过MediaSessionManager创建MediaController。

但是,当我查看MediaSessionManager时,除了addOnActiveSessionsChangedListener,getActiveSessions和removeOnActiveSessionsChangedListener之外,没有其他方法可以帮助我。 我尝试从MediaSession创建一个令牌但是没有让我的回调从其他媒体播放器获得任何东西。

1 个答案:

答案 0 :(得分:4)

MediaSessionManager.getActiveSessions()为您提供与当前正在播放的音乐播放器相关联的MediaController个实例的列表。然后,您可以使用MediaController.registerCallback()注册您创建的MediaController.Callback实施,该实施与已弃用的RemoteController.OnClientUpdateListener具有类似的回调(或者直接将媒体控件发送回MediaController

当然,在大多数情况下,您希望将MediaController的列表与系统保持同步:这是MediaSessionManager.addOnActiveSessionsChangedListener()的用途:它会为您提供{{1}的更新列表每次玩家列表改变时都会使用和调用。根据文档,如果您使用的是权限,则可以将MediaController传递给null参数。