как использовать MediaSession для Android api >=19

#java #android #android-4.4-kitkat #mediasession

#java #Android #android-4.4-kitkat #mediasession

Вопрос:

Я пытаюсь включить MediaSession в свой Service , но использование android.media.MediaSession не работает, потому что вызов mediaSession.release() выдает мне сообщение об ошибке, в котором говорится, что вызов доступен только в api level 21 , пока я ориентируюсь на уровень API 19.

Я искал, и, похоже, он также недоступен в androidx.media. Где находится MediaSession или MediaSessionCompat для пользователей androidx?

Комментарии:

1. попробуйте это — medium.com/androiddevelopers /…

2. @Sachin , в нем ничего не упоминается об androidx или импорте MediaSession

3. проверьте media 2 api, developer.android.com/reference/androidx/media2/session /…

Ответ №1:

Согласно руководству по использованию сеанса мультимедиа, правильный класс по-прежнему остается android.support.v4.media.session.MediaSessionCompat (обратите внимание, что класс по-прежнему остается в наборе документации ‘AndroidX’ и по-прежнему является частью androidx.media артефакта).

Класс остается в старом пакете просто потому, что вложенный класс MediaSessionCompat.Token является Parcelable и является частью общедоступного API и, следовательно, не может иметь имени своего пакета, оставаясь совместимым с приложениями, все еще созданными на основе старых классов библиотеки поддержки.

Комментарии:

1. вы имеете в виду, android.support.v4/v7... и androidx.... не являются ли библиотеки взаимоисключающими?

2. Эта ссылка, которую вы предоставили: developer.android.com/reference/android/support/v4/media / … похоже, что он не остается в androidx разделе, как вы упомянули

3. и библиотека поддержки мультимедиа говорит, что media-compat устарел; developer.android.com/topic/libraries/support-library / … и рекомендует использовать androidx и говорит, что для androidx доступна новая версия, но не говорит, где

4. Это очень четко описано в разделе «AndroidX» в левой навигации страницы. Как я уже сказал, этот класс целенаправленно не перемещался в пакет androidx, потому что это нарушило бы совместимость . Это абсолютно, на 100% является частью androidx.media библиотеки.

5. androidx.media это единственная группа библиотек AndroidX, которая все еще содержит классы в android.support.v4 пакетах (поскольку это была единственная библиотека, в которой были общедоступные Parcelable реализации, предназначенные для отправки в другие приложения и из них).