首页 文章

如何使用支持库获取前Lollipop版本的MediaSessionCompat列表?

提问于
浏览
2

因此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);

}

1 回答

相关问题