Я новичок в программировании на Android, особенно в медиа-фреймворке.Мне нужна помощь, пожалуйста.
Я хотел бы получить MediaPlayer YouTube, когда MediaSession YouTube изменился.Однако я получаю значение null на getActiveSession в слушателе onActiveSessionsChanged после нажатия кнопки следующей песни YouTube.
Я определил MediaSessionManager для мониторинга MediaSession, особенно youtube, и я также определил onActiveSessionsChanged слушатель для получения действия для YouTube.
Я нажал кнопку транспорта YouTube для генерации события в onActiveSessionsChanged.Однако функция MediaSession.getActiveSessions () только дает нам нулевое значение для моего приложения.
Я действительно запутался в этой ситуации, потому что другие приложения потоковой передачи музыки могут получить MediaController при вызове getActiveSessions ().
/* 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);
}