我是Android编程(尤其是媒体框架)的新手。 请给我帮助。
我想在YouTube的MediaSession更改后获得YouTube的MediaPlayer。 但是,在按下YouTube下一首歌曲按钮后,我在onActiveSessionsChanged侦听器中的getActiveSession上得到了null。
我已经定义了MediaSessionManager来监视MediaSession(尤其是youtube),并且还定义了onActiveSessionsChanged侦听器以获取YouTube的操作。
我按下了YouTube传输按钮,以将事件生成为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);
}