MediaSessionManager的onActiveSessionsChanged返回null

时间:2019-03-29 10:34:36

标签: android android-mediaplayer android-mediasession

我是Android编程(尤其是媒体框架)的新手。 请给我帮助。

我想在YouTube的MediaSession更改后获得YouTube的MediaPlayer。 但是,在按下YouTube下一首歌曲按钮后,我在onActiveSessionsChanged侦听器中的getActiveSession上得到了null。

我已经定义了MediaSessionManager来监视MediaSession(尤其是youtube),并且还定义了onActiveSessionsChanged侦听器以获取YouTube的操作。

我按下了Y​​ouTube传输按钮,以将事件生成为onActiveSessionsChanged。但是,MediaSession.getActiveSessions()函数仅向我们的应用程序提供空值。

我对此情况感到非常困惑,因为其他音乐流应用程序可以在调用getActiveSessions()时获取MediaController。

/* I defined media_session_manager */ 
            if (media_session_manager == null) {
//                delete_media_session();
//                if (media_session_manager != null) {
//                    media_session_manager.removeOnActiveSessionsChangedListener(this);
//                    media_session_manager = null;
//                }
                media_session_manager = (MediaSessionManager) getSystemService(Context.MEDIA_SESSION_SERVICE);
                media_session_manager.addOnActiveSessionsChangedListener(this, notification_listener);

            }
   @Override
    public void onActiveSessionsChanged(@Nullable List<MediaController> controllers) {
        /* I want to receive a youtube below on this code */
        Iterator iter = controllers.iterator();
        while(iter.hasNext()){
            MediaController mp = (MediaController) iter.next();
            Log.e("Audio", "mp="+mp.getPackageName() + " state="+mp.getPlaybackState());
        }
//        add_active_session(controllers);
    }

0 个答案:

没有答案