因此Google弃用了整个RemoteControlClient,并将其替换为MediaSession。然后,为了添加向后兼容性,在支持库中添加了MediaSessionCompat,因此您不再需要使用RemoteControlClient。
但是,他们没有添加替代接收元数据并为其他玩家播放状态,也无法控制。当然,如果您 是媒体播放器,您可以自己创建MediaSessionCompat
,但如果您只想远程控制其他媒体播放器,该怎么办?
我的问题是,使用支持库替换MediaSessionManager
是什么?具体来说,如何获取系统上所有当前MediaSessionCompat
会话的列表(例如MediaSessionManager.addOnActiveSessionsChangedListener()
使用新API)?
基本上,我如何使以下代码适用于API< 21:
private MediaSessionManager mSessionManager;
private MediaController mController;
private MediaSessionManager.OnActiveSessionsChangedListener sessionListener = new MediaSessionManager.OnActiveSessionsChangedListener() {
@Override
public void onActiveSessionsChanged(List<MediaController> controllers) {
mController = controllers.get(0);
mController.registerCallback(controllerCallback);
}
};
@Override
public void onCreate() {
super.onCreate();
mSessionManager = (MediaSessionManager) getSystemService(Context.MEDIA_SESSION_SERVICE);
ComponentName componentName = new ComponentName(this, "com.example.MyNotificationListener");
mSessionManager.addOnActiveSessionsChangedListener(sessionListener, componentName);
}
答案 0 :(得分:0)
这是不可能的。
支持库中没有MediaSessionManager的替代品