Медиа2

Делитесь мультимедийным содержимым и элементами управления с другими приложениями.
Последнее обновление Стабильный выпуск Кандидат на выпуск Бета-версия Альфа-релиз
10 января 2024 г. 1.3.0 - - -

Объявление зависимостей

Чтобы добавить зависимость от Media2, вам необходимо добавить в свой проект репозиторий Google Maven. Для получения дополнительной информации прочтите репозиторий Google Maven .

Добавьте зависимости для нужных вам артефактов в файл build.gradle для вашего приложения или модуля:

классный

dependencies {
    def media2_version = "1.3.0"

    // Interacting with MediaSessions
    implementation "androidx.media2:media2-session:$media2_version"
    // optional - UI widgets for VideoView and MediaControlView
    implementation "androidx.media2:media2-widget:$media2_version"
    // optional - Implementation of a SessionPlayer
    implementation "androidx.media2:media2-player:$media2_version"
}

Котлин

dependencies {
    val media2_version = "1.3.0"

    // Interacting with MediaSessions
    implementation("androidx.media2:media2-session:$media2_version")
    // optional - UI widgets for VideoView and MediaControlView
    implementation("androidx.media2:media2-widget:$media2_version")
    // optional - Implementation of a SessionPlayer
    implementation("androidx.media2:media2-player:$media2_version")
}

Дополнительные сведения о зависимостях см. в разделе Добавление зависимостей сборки .

Обратная связь

Ваши отзывы помогают сделать Jetpack лучше. Дайте нам знать, если вы обнаружите новые проблемы или у вас есть идеи по улучшению этой библиотеки. Пожалуйста, ознакомьтесь с существующими проблемами в этой библиотеке, прежде чем создавать новую. Вы можете добавить свой голос к существующей проблеме, нажав кнопку со звездочкой.

Создать новую задачу

Дополнительную информацию см . в документации по системе отслеживания проблем .

Версия 1.3

Версия 1.3.0

10 января 2024 г.

Выпущен androidx.media2:media2-*:1.3.0 . Версия 1.3.0 содержит эти коммиты.

Важные изменения с версии 1.2.0

  • androidx.media2 полностью устарел. Вместо этого используйте androidx.media3.

Версия 1.3.0-rc01

13 декабря 2023 г.

androidx.media2:media2-*:1.3.0-rc01 выпущен без изменений по сравнению с Media2 1.3.0-beta01. Версия 1.3.0-rc01 содержит эти коммиты.

Версия 1.3.0-бета01

29 ноября 2023 г.

androidx.media2:media2-*:1.3.0-beta01 выпущен без изменений по сравнению с Media2 1.3.0-alpha01 . Версия 1.3.0-beta01 содержит эти коммиты.

Версия 1.3.0-альфа01

15 ноября 2023 г.

Выпущен androidx.media2:media2-*:1.3.0-alpha01 . Версия 1.3.0-alpha01 содержит эти коммиты.

Изменения API

  • androidx.media2 полностью устарел. Вместо этого используйте androidx.media3 . ( I53164 )

Версия 1.2.1

Версия 1.2.1

9 февраля 2022 г.

androidx.media2:media2-*:1.2.1 выпущен. Версия 1.2.1 содержит эти коммиты.

Исправления ошибок

  • Исправлена ​​проверка пользовательских Parcelables при настройке API 33.

Версия 1.2.0

Версия 1.2.0

15 сентября 2021 г.

Выпущен androidx.media2:media2-*:1.2.0 . Версия 1.2.0 содержит эти коммиты.

Важные изменения с версии 1.1.0

  • Поддержка взаимодействия с носителями AndroidX (подготовка | воспроизведение) From (MediaId | Uri | Search)
  • Добавлены MEDIA_URI_PATH_SET_MEDIA_URI и MEDIA_URI_QUERY_URI в MediaConstants

Версия 1.2.0-rc01

1 сентября 2021 г.

Выпущен androidx.media2:media2-*:1.2.0-rc01 . Версия 1.2.0-rc01 содержит эти коммиты.

Исправления ошибок

  • Исправлен ANR при отклонении медиа-уведомления ( Ifdcc2 , b/148011394 ).

Версия 1.2.0-бета01

30 июня 2021 г.

Выпущен androidx.media2:media2-*:1.2.0-beta01 . Версия 1.2.0-beta01 содержит эти коммиты.

Новые возможности

  • Поддержка взаимодействия с носителями AndroidX (подготовка | воспроизведение) From (MediaId | Uri | Search)

Изменения API

  • Добавлены MEDIA_URI_PATH_SET_MEDIA_URI и MEDIA_URI_QUERY_URI в MediaConstants.

Версия 1.2.0-альфа01

21 апреля 2021 г.

Выпущен androidx.media2:media2-*:1.2.0-alpha01 . Версия 1.2.0-alpha01 содержит эти коммиты.

Изменения API

  • Добавить поддержку (подготовка|воспроизведение) From(MediaId|Uri|Search) ( I13475 , b/176949057 ).

Исправления ошибок

  • Исправлена ​​проблема взаимоблокировки, вызванная ненужными синхронизированными блоками.
  • Сброс плеера, когда нет игровых предметов
  • Разрешить onCurrentMediaItemChanged принимать нулевой элемент мультимедиа
  • Обновлять уведомление при изменении текущего элемента мультимедиа
  • Исправлено взаимодействие с совместимостью контроллера сразу после создания сеанса.

Версия 1.1.3

Версия 1.1.3

21 апреля 2021 г.

Выпущен androidx.media2:media2-*:1.1.3 . Версия 1.1.3 содержит эти коммиты.

Исправления ошибок

  • Исправлена ​​проблема взаимоблокировки, вызванная ненужными синхронизированными блоками.

Версия 1.1.2

Версия 1.1.2

27 января 2021 г.

Выпущен androidx.media2:media2-*:1.1.2 . Версия 1.1.2 содержит эти коммиты.

Исправления ошибок

Версия 1.1.1

Версия 1.1.1

16 декабря 2020 г.

androidx.media2:media2-*:1.1.1 выпущен. Версия 1.1.1 содержит эти коммиты.

Исправления ошибок

  • Сделайте так, чтобы медиа-уведомление обновлялось при изменении текущего медиа-элемента.

Версия 1.1.0

Версия 1.1.0

2 декабря 2020 г.

Выпущен androidx.media2:media2-*:1.1.0 . Версия 1.1.0 содержит эти коммиты.

Основные изменения с версии 1.0.0

  • Добавлено больше API для обработки медиа-дорожек.
  • Улучшенная поддержка совместимости с медиабиблиотекой AndroidX.
    • Добавлен MediaSession#setMediaUri
    • Открытый MediaSessionCompat.Token через MediaSession#getSessionCompatToken()

Версия 1.1.0-rc01

28 октября 2020 г.

Выпущен androidx.media2:media2-*:1.1.0-rc01 . Версия 1.1.0-rc01 содержит эти коммиты.

  • Исправлена ​​проблема, из-за которой MediaController уведомлял об обратных вызовах, удерживая блокировку, что приводило к потенциальным взаимоблокировкам ( I76c56
  • Исправлена ​​проблема, из-за которой MediaSessionImplBase#isClosed() мог аварийно завершить работу при вызове getCurrentControllerInfo() для выпущенного MediaSessionCompat . ( аосп/1423291 ]
  • Исправлена ​​проблема, из-за которой media2 MediaSession не устанавливал идентификатор активного элемента очереди PlaybackStateCompat ( aosp/1421652 ).
  • Добавлен флаг BIND_INCLUDE_CAPABILITIES при привязке к службе, который позволяет автономным мультимедийным приложениям получать доступ к местоположению, если у них есть разрешение. Это особенно полезно для приложений Android Auto. ( аосп/1440731 )

Версия 1.1.0-бета01

16 сентября 2020 г.

Выпущен androidx.media2:media2-*:1.1.0-beta01 . Версия 1.1.0-beta01 содержит эти коммиты.

Исправления ошибок

  • Сбросить текущую позицию при изменении элемента мультимедиа
  • Отправлять метаданные и состояние буферизации при подключении
  • Исправлен сбой при отправке больших данных между сеансом и контроллером.
  • Добавьте <queries> в манифест для media и media2 для Android 11.
  • Исправьте NPE для MediaController.getPlaylist()
  • Отключить индикатор выполнения MediaControlView если команда поиска не разрешена.
  • Уведомлять PlaybackStateCompat при изменении текущего медиа-элемента сеанса.
  • Исправить пакетирование SessionPlayer.TrackInfo

Версия 1.1.0-альфа01

24 июня 2020 г.

Выпущен androidx.media2:media2-*:1.1.0-alpha01 . Версия 1.1.0-alpha01 содержит эти коммиты.

Исправления ошибок

  • Исправлена ​​проблема с синхронизацией при обновлении метаданных ( I45567 , b/143999611 ).
  • SessionResult сохранит MediaItem из PlayerResult ( I927b0 , b/154885520 ).
  • Исправлена ​​ошибка, из-за которой MediaController#setVolumeTo() мог изменить неправильный объем потока. ( I76870 , б / 151204736 )

Версия 1.0.3

Версия 1.0.3

19 февраля 2020 г.

Выпущен androidx.media2:media2-*:1.0.3 . Версия 1.0.3 media2-{common,player,session} содержит эти коммиты , а версия 1.0.3 media2-widget содержит эти коммиты.

Исправления ошибок

  • Исправлено исключение NullPointerException при создании MediaController с нулевым обратным вызовом.
  • Исправлена ​​проблема, из-за которой onPlaylistChanged() не вызывался после MediaPlayer.setMediaItem

Версия 1.0.2

Версия 1.0.2

5 февраля 2020 г.

Выпущен androidx.media2:media2-*:1.0.2 . Версия 1.0.2 media2-{common,player,session} содержит эти коммиты , а версия 1.0.2 media2-widget содержит эти коммиты.

Исправления ошибок

  • Исправлено исключение IndexOutOfBoundsException в MediaPlayer#getSelectedTrack() . ( аосп/987003 )
  • Улучшена обработка случая, когда ExoPlayer вызывает getDuration(), а элемент мультимедиа не существует ( aosp/987484 ).
  • Исправлена ​​ошибка, из-за которой ExoPlayer не вызывал исключение IllegalStateException при вызове getDuration() в состоянии IDLE ( aosp/987246 ).
  • Не разрешать пользовательские Parcelables для media2 ( aosp/1091056 )
  • Исправлена ​​проблема, приводившая к зависанию функции close() ( aosp/1096455 ).
  • MediaBrowser: улучшена обработка ошибок в subscribe() с помощью MediaBrowserService ( aosp/1158057 ).
  • Исправлен сбой MediaController с Framework MediaSession ( aosp/1177663 ).
  • Не уведомлять информацию о сеансе через обратные вызовы при установке соединения ( aosp/1195030 , b/142925848 )
  • Исправлена ​​проблема, из-за которой SessionResult мог быть неожиданно отправлен несколько раз из MediaController ( aosp/1198634 ).
  • Исправлена ​​проблема, из-за которой MediaController мог отправлять запрещенные команды в MediaSession, поэтому MediaSession теперь отправляет RESULT_ERROR_PERMISSION_DENIED ( aosp/1204183 ).
  • Исправлена ​​проблема с MediaControllerView#setPlayer ( aosp/987004 ).

Версия 1.0.1

Версия 1.0.1

9 октября 2019 г.

Выпущен androidx.media2:media2-*:1.0.1 . Версия 1.0.1 androidx.media2:media2-{player, session}:1.0.1 содержит эти коммиты , а версия 1.0.1 androidx.media2:media2-widget:1.0.1 содержит эти коммиты .

Исправления ошибок

  • Исправлено исключение RuntimeException, когда подкласс MediaItem отправляется через процесс ( aosp/1098971 ).
  • Исправлена ​​проблема, из-за которой MediaPlayer вызывает onCurrentMediaItemChanged() только один раз при воспроизведении списка воспроизведения.
  • Исправлена ​​проблема, из-за которой MediaPlayer мог воспроизводить список воспроизведения, содержащий более двух элементов ( aosp/1108440 ).
  • Исправлена ​​проблема, из-за которой игрок продолжал играть на SurfaceView, даже если он невидим.
  • Исправлена ​​проблема с воспроизведением VideoView, возникающая при вызове setViewType перед setPlayer

Версия 1.0.0

5 сентября 2019 г.

Выпущен androidx.media2:media2-*:1.0.0 . Это коммиты, включенные в media2-{player, session}:1.0.0 , и это коммиты, включенные в media2-widget:1.0.0 .

Основные возможности Media2 1.0.0

Media2 — это следующее поколение следующих API-интерфейсов мультимедиа: MediaSession , MediaController , MediaBrowser , MediaBrowserService , VideoView и MediaControlView .

  • media2.player.MediaPlayer
    • API в основном соответствуют android.media.MediaPlayer , а базовый движок — ExoPlayer.
    • Встроенная фокусировка звука и обработка шума
    • Реализует SessionPlayer
  • media2.session.MediaSession
    • Обеспечивает детальный контроль разрешений.
    • Поддерживает пользовательские макеты
    • Легко использовать с SessionPlayer, например androidx.media2.player.MediaPlayer
    • Совместимость с MediaControllerCompat
  • media2.session.MediaSessionService
    • Облегченная версия MediaLibraryService
    • Обеспечивает управление жизненным циклом службы для фонового воспроизведения.
    • Совместимость с MediaControllerCompat и MediaBrowserServiceCompat
  • media2.session.MediaLibraryService
    • Поддерживает улучшенную нумерацию страниц для навигации по элементам мультимедиа или результатам поиска, содержащим большое количество элементов.
    • Совместимость с MediaControllerCompat и MediaBrowserServiceCompat
  • media2.session.MediaController
    • Может подключаться к MediaSession , MediaSessionService и MediaLibraryService
    • Совместимость с MediaSessionCompat и MediaBrowserServiceCompat
  • media2.session.MediaBrowser
    • Наследует MediaController
    • Может подключаться к MediaSession , MediaSessionService и MediaLibraryService
    • Совместимость с MediaSessionCompat и MediaBrowserServiceCompat
  • media2.widget.VideoView
    • Содержит все функции android.widget.VideoView
    • Обеспечивает переключение между TextureView и SurfaceView
    • Может работать вместе с MediaSession
  • media2.widget.MediaControlView
    • Лучше выглядеть и чувствовать себя
    • Содержит всю функциональность android.widget.MediaController
    • Обеспечивает выбор дорожки субтитров, выбор скорости воспроизведения и полноэкранный режим.

Версия 1.0.0-rc02

22 августа 2019 г.

Выпущен androidx.media2:media2-*:1.0.0-rc02 , изменения, включенные в эту версию, можно найти здесь . Этот выпуск включает androidx.media2:media2-widget:1.0.0-rc02 а изменения, включенные в эту версию, можно найти здесь .

Новые возможности

  • setPlayer или setController больше нельзя вызывать через MediaControlView (MCV), если MediaControlView принадлежит VideoView

Исправления ошибок

  • MediaControlView : кнопки «Следующая» и «Предыдущая» доступны для нажатия только при наличии следующих или предыдущих элементов мультимедиа.
  • MediaControlView : исправлено ненадежное исключение NullPointerException при вызове onAttachedToWindow()
  • Виджет Media2 теперь правильно обрабатывает метаданные нового медиа-элемента при изменении текущего медиа-элемента.

Media2-Виджет Версия 1.0.0-beta01

2 июля 2019 г.

Выпущен androidx.media2:media2-widget:1.0.0-beta01 . Коммиты, включенные в эту версию, можно найти здесь .

Новые возможности

  • Фоновое воспроизведение. Вместо создания проигрывателя внутри VideoView VideoView может использовать SessionPlayer или MediaController, чтобы приложение могло плавно переходить в режим фонового воспроизведения.
  • Удалена зависимость от библиотеки media2-player.
  • Добавлен onViewTypeChangedListener

Изменения API

  • Изменение видимости с общедоступной на защищенную:
    • VideoView.onMeasure(int, int)
    • VideoView.onAttachedToWindow()
    • VideoView.onDetachedFromWindow()
    • MediaControlView.onMeasure(int, int)
  • Удаленный:
    • VideoView.getSessionToken()
    • VideoView.setAudioAttributes(AudioAttributesCompat)
    • VideoView.setMedaItem(MediaItem)
    • MediaControlView.setSessionToken(SessionToken)
  • Добавлен:
    • VideoView.setMediaController(MediaController)
    • VideoView.getMediaControlView()
    • VideoView.setMediaController(MediaController)
    • VideoView.setPlayer(SessionPlayer)
    • VideoView.setOnViewTypeChangedListener()
    • MediaControlView.setPlayer(SessionPlayer)
    • MediaControlView.setMediaController(MediaContoller)

Версия 1.0.0-rc01

18 июня 2019 г.

androidx.media2:media2-common:1.0.0-rc01 , androidx.media2:media2-player:1.0.0-rc01 и androidx.media2:media2-session:1.0.0-rc01 выпущены. Коммиты, включенные в эту версию, можно найти здесь .

Изменения API

  • Зависимости от ListenableFuture были перенесены обратно в автономную реализацию Guava.

  • Обратите внимание: если у вас есть целевые объекты тестирования, которые зависят от полного артефакта Guava, вы можете столкнуться с конфликтом разрешения зависимостей при использовании определенных версий подключаемого модуля Android Gradle. Если вы столкнулись с ошибкой Could not resolve all artifacts связанной с ListenableFuture , вы можете временно обойти эту проблему, добавив android.dependency.useConstraints=false в конфигурацию сборки вашего проекта. В настоящее время мы работаем над постоянным исправлением подключаемого модуля Android Gradle, которое будет выпущено позднее.

Версия 1.0.0-beta02

5 июня 2019 г.

Выпущены androidx.media2:media2-common:1.0.0-beta02 , androidx.media2:media2-player:1.0.0-beta02 и androidx.media2:media2-session:1.0.0-beta02 . Коммиты, включенные в эту версию, можно найти здесь .

Исправления ошибок

  • Установка отрицательной скорости воспроизведения в androidx.media.player.MediaPlayer вернет RESULT_ERROR_BAD_VALUE.
  • Замените Guava ListenableFuture реализацией Jetpack ( aosp/968828 )

Версия 1.0.0-бета01

7 мая 2019 г.

Выпущены androidx.media2:media2-common:1.0.0-beta01 , androidx.media2:media2-player:1.0.0-beta01 и androidx.media2:media2-session:1.0.0-beta01 . Коммиты, включенные в эту версию, можно найти здесь .

Новые возможности

  • Библиотеки разделены на 3 части: media2-common, media2-player, media2-session.
  • Исключение IllegalPointerException изменено на NullPointerException для нулевых аргументов, помеченных как @NonNull.

Изменения API

  • Представлен MediaController.Builder
  • Добавлены методы установки для необязательных полей FileMediaItem.Builder
  • MediaController и MediaBrowser могут отправлять подсказки о подключении приложения в MediaSession , MediaSessionService или MediaLibraryService
  • Некоторые методы переименованы в соответствии с API-интерфейсами Android 10 Media2.

Версия 1.0.0-альфа04

17 декабря 2018 г.

Изменения API

  • Переименованы следующие классы:
    • MediaPlayer2MediaPlayer
    • MediaSession2MediaSession
    • MediaController2MediaController
    • MediaSessionService2MediaSessionService
    • MediaLibraryService2MediaLibraryService
    • MediaBrowser2MediaBrowser
    • MediaMetadata2MediaMetadata
    • Rating2Rating
    • SessionToken2SessionToken
    • SessionCommand2SessionCommand
    • SessionCommandGroup2SessionCommandGroup
  • Объединены следующие классы:
    • DataSourceDesc2 и MediaItem2 объединены в MediaItem
    • MediaPlaylistAgent и MediaPlayerConnector объединены в SessionPlayer
  • Добавлены следующие подклассы Rating : HeartRating , PercentageRating , StarRating и ThumbRating
  • Media2 теперь использует ListenableFuture для асинхронных методов.
,

Медиа2

Делитесь мультимедийным содержимым и элементами управления с другими приложениями.
Последнее обновление Стабильный выпуск Кандидат на выпуск Бета-версия Альфа-релиз
10 января 2024 г. 1.3.0 - - -

Объявление зависимостей

Чтобы добавить зависимость от Media2, вам необходимо добавить в свой проект репозиторий Google Maven. Для получения дополнительной информации прочтите репозиторий Google Maven .

Добавьте зависимости для нужных вам артефактов в файл build.gradle для вашего приложения или модуля:

классный

dependencies {
    def media2_version = "1.3.0"

    // Interacting with MediaSessions
    implementation "androidx.media2:media2-session:$media2_version"
    // optional - UI widgets for VideoView and MediaControlView
    implementation "androidx.media2:media2-widget:$media2_version"
    // optional - Implementation of a SessionPlayer
    implementation "androidx.media2:media2-player:$media2_version"
}

Котлин

dependencies {
    val media2_version = "1.3.0"

    // Interacting with MediaSessions
    implementation("androidx.media2:media2-session:$media2_version")
    // optional - UI widgets for VideoView and MediaControlView
    implementation("androidx.media2:media2-widget:$media2_version")
    // optional - Implementation of a SessionPlayer
    implementation("androidx.media2:media2-player:$media2_version")
}

Дополнительные сведения о зависимостях см. в разделе Добавление зависимостей сборки .

Обратная связь

Ваши отзывы помогают сделать Jetpack лучше. Дайте нам знать, если вы обнаружите новые проблемы или у вас есть идеи по улучшению этой библиотеки. Пожалуйста, ознакомьтесь с существующими проблемами в этой библиотеке, прежде чем создавать новую. Вы можете добавить свой голос к существующей проблеме, нажав кнопку со звездочкой.

Создать новую задачу

Дополнительную информацию см . в документации по системе отслеживания проблем .

Версия 1.3

Версия 1.3.0

10 января 2024 г.

Выпущен androidx.media2:media2-*:1.3.0 . Версия 1.3.0 содержит эти коммиты.

Важные изменения с версии 1.2.0

  • androidx.media2 полностью устарел. Вместо этого используйте androidx.media3.

Версия 1.3.0-rc01

13 декабря 2023 г.

androidx.media2:media2-*:1.3.0-rc01 выпущен без изменений по сравнению с Media2 1.3.0-beta01. Версия 1.3.0-rc01 содержит эти коммиты.

Версия 1.3.0-бета01

29 ноября 2023 г.

androidx.media2:media2-*:1.3.0-beta01 выпущен без изменений по сравнению с Media2 1.3.0-alpha01 . Версия 1.3.0-beta01 содержит эти коммиты.

Версия 1.3.0-альфа01

15 ноября 2023 г.

Выпущен androidx.media2:media2-*:1.3.0-alpha01 . Версия 1.3.0-alpha01 содержит эти коммиты.

Изменения API

  • androidx.media2 полностью устарел. Вместо этого используйте androidx.media3 . ( I53164 )

Версия 1.2.1

Версия 1.2.1

9 февраля 2022 г.

androidx.media2:media2-*:1.2.1 выпущен. Версия 1.2.1 содержит эти коммиты.

Исправления ошибок

  • Исправлена ​​проверка пользовательских Parcelables при настройке API 33.

Версия 1.2.0

Версия 1.2.0

15 сентября 2021 г.

Выпущен androidx.media2:media2-*:1.2.0 . Версия 1.2.0 содержит эти коммиты.

Важные изменения с версии 1.1.0

  • Поддержка взаимодействия с носителями AndroidX (подготовка | воспроизведение) From (MediaId | Uri | Search)
  • Добавлены MEDIA_URI_PATH_SET_MEDIA_URI и MEDIA_URI_QUERY_URI в MediaConstants

Версия 1.2.0-rc01

1 сентября 2021 г.

Выпущен androidx.media2:media2-*:1.2.0-rc01 . Версия 1.2.0-rc01 содержит эти коммиты.

Исправления ошибок

  • Исправлен ANR при отклонении медиа-уведомления ( Ifdcc2 , b/148011394 ).

Версия 1.2.0-бета01

30 июня 2021 г.

Выпущен androidx.media2:media2-*:1.2.0-beta01 . Версия 1.2.0-beta01 содержит эти коммиты.

Новые возможности

  • Поддержка взаимодействия с носителями AndroidX (подготовка | воспроизведение) From (MediaId | Uri | Search)

Изменения API

  • Добавлены MEDIA_URI_PATH_SET_MEDIA_URI и MEDIA_URI_QUERY_URI в MediaConstants.

Версия 1.2.0-альфа01

21 апреля 2021 г.

Выпущен androidx.media2:media2-*:1.2.0-alpha01 . Версия 1.2.0-alpha01 содержит эти коммиты.

Изменения API

  • Добавить поддержку (подготовка|воспроизведение) From(MediaId|Uri|Search) ( I13475 , b/176949057 ).

Исправления ошибок

  • Исправлена ​​проблема взаимоблокировки, вызванная ненужными синхронизированными блоками.
  • Сброс плеера, когда нет игровых предметов
  • Разрешить onCurrentMediaItemChanged принимать нулевой элемент мультимедиа
  • Обновлять уведомление при изменении текущего медиа-элемента
  • Исправлено взаимодействие с совместимостью контроллера сразу после создания сеанса.

Версия 1.1.3

Версия 1.1.3

21 апреля 2021 г.

Выпущен androidx.media2:media2-*:1.1.3 . Версия 1.1.3 содержит эти коммиты.

Исправления ошибок

  • Исправлена ​​проблема взаимоблокировки, вызванная ненужными синхронизированными блоками.

Версия 1.1.2

Версия 1.1.2

27 января 2021 г.

Выпущен androidx.media2:media2-*:1.1.2 . Версия 1.1.2 содержит эти коммиты.

Исправления ошибок

Версия 1.1.1

Версия 1.1.1

16 декабря 2020 г.

androidx.media2:media2-*:1.1.1 выпущен. Версия 1.1.1 содержит эти коммиты.

Исправления ошибок

  • Сделайте так, чтобы медиа-уведомление обновлялось при изменении текущего медиа-элемента.

Версия 1.1.0

Версия 1.1.0

2 декабря 2020 г.

Выпущен androidx.media2:media2-*:1.1.0 . Версия 1.1.0 содержит эти коммиты.

Основные изменения с версии 1.0.0

  • Добавлено больше API для обработки медиа-дорожек.
  • Улучшенная поддержка совместимости с медиабиблиотекой AndroidX.
    • Добавлен MediaSession#setMediaUri
    • Открытый MediaSessionCompat.Token через MediaSession#getSessionCompatToken()

Версия 1.1.0-rc01

28 октября 2020 г.

Выпущен androidx.media2:media2-*:1.1.0-rc01 . Версия 1.1.0-rc01 содержит эти коммиты.

  • Исправлена ​​проблема, из-за которой MediaController уведомлял об обратных вызовах, удерживая блокировку, что приводило к потенциальным взаимоблокировкам ( I76c56
  • Исправлена ​​проблема, из-за которой MediaSessionImplBase#isClosed() мог аварийно завершить работу при вызове getCurrentControllerInfo() для выпущенного MediaSessionCompat . ( аосп/1423291 ]
  • Исправлена ​​проблема, из-за которой media2 MediaSession не устанавливал идентификатор активного элемента очереди PlaybackStateCompat ( aosp/1421652 ).
  • Добавлен флаг BIND_INCLUDE_CAPABILITIES при привязке к службе, который позволяет автономным мультимедийным приложениям получать доступ к местоположению, если у них есть разрешение. Это особенно полезно для приложений Android Auto. ( аосп/1440731 )

Версия 1.1.0-бета01

16 сентября 2020 г.

Выпущен androidx.media2:media2-*:1.1.0-beta01 . Версия 1.1.0-beta01 содержит эти коммиты.

Исправления ошибок

  • Сбросить текущую позицию при изменении элемента мультимедиа
  • Отправлять метаданные и состояние буферизации при подключении
  • Исправлен сбой при отправке больших данных между сеансом и контроллером.
  • Добавьте <queries> в манифест для media и media2 для Android 11.
  • Исправьте NPE для MediaController.getPlaylist()
  • Отключить индикатор выполнения MediaControlView если команда поиска не разрешена.
  • Уведомлять PlaybackStateCompat при изменении текущего медиа-элемента сеанса.
  • Исправление разделения SessionPlayer.TrackInfo

Версия 1.1.0-альфа01

24 июня 2020 г.

Выпущен androidx.media2:media2-*:1.1.0-alpha01 . Версия 1.1.0-alpha01 содержит эти коммиты.

Исправления ошибок

  • Исправлена ​​проблема с синхронизацией при обновлении метаданных ( I45567 , b/143999611 ).
  • SessionResult сохранит MediaItem из PlayerResult ( I927b0 , b/154885520 ).
  • Исправлена ​​ошибка, из-за которой MediaController#setVolumeTo() мог изменить неправильный объем потока. ( I76870 , б / 151204736 )

Версия 1.0.3

Версия 1.0.3

19 февраля 2020 г.

Выпущен androidx.media2:media2-*:1.0.3 . Версия 1.0.3 media2-{common,player,session} содержит эти коммиты , а версия 1.0.3 media2-widget содержит эти коммиты.

Исправления ошибок

  • Исправлено исключение NullPointerException при создании MediaController с нулевым обратным вызовом.
  • Исправлена ​​проблема, из-за которой onPlaylistChanged() не вызывался после MediaPlayer.setMediaItem

Версия 1.0.2

Версия 1.0.2

5 февраля 2020 г.

Выпущен androidx.media2:media2-*:1.0.2 . Версия 1.0.2 media2-{common,player,session} содержит эти коммиты , а версия 1.0.2 media2-widget содержит эти коммиты.

Исправления ошибок

  • Исправлено исключение IndexOutOfBoundsException в MediaPlayer#getSelectedTrack() . ( аосп/987003 )
  • Улучшена обработка случая, когда ExoPlayer вызывает getDuration(), а элемент мультимедиа не существует ( aosp/987484 ).
  • Исправлена ​​ошибка, из-за которой ExoPlayer не вызывал исключение IllegalStateException при вызове getDuration() в состоянии IDLE ( aosp/987246 ).
  • Не разрешать пользовательские Parcelables для media2 ( aosp/1091056 )
  • Исправлена ​​проблема, приводившая к зависанию функции close() ( aosp/1096455 ).
  • MediaBrowser: улучшена обработка ошибок в subscribe() с помощью MediaBrowserService ( aosp/1158057 ).
  • Исправлен сбой MediaController с Framework MediaSession ( aosp/1177663 ).
  • Не уведомлять информацию о сеансе через обратные вызовы при установке соединения ( aosp/1195030 , b/142925848 )
  • Исправлена ​​проблема, из-за которой SessionResult мог быть неожиданно отправлен несколько раз из MediaController ( aosp/1198634 ).
  • Исправлена ​​проблема, из-за которой MediaController мог отправлять запрещенные команды в MediaSession, поэтому MediaSession теперь отправляет RESULT_ERROR_PERMISSION_DENIED ( aosp/1204183 ).
  • Исправлена ​​проблема с MediaControllerView#setPlayer ( aosp/987004 ).

Версия 1.0.1

Версия 1.0.1

9 октября 2019 г.

Выпущен androidx.media2:media2-*:1.0.1 . Версия 1.0.1 androidx.media2:media2-{player, session}:1.0.1 содержит эти коммиты , а версия 1.0.1 androidx.media2:media2-widget:1.0.1 содержит эти коммиты .

Исправления ошибок

  • Исправлено исключение RuntimeException, когда подкласс MediaItem отправляется в процесс ( aosp/1098971 ).
  • Исправлена ​​проблема, из-за которой MediaPlayer вызывает onCurrentMediaItemChanged() только один раз при воспроизведении списка воспроизведения.
  • Исправлена ​​проблема, из-за которой MediaPlayer мог воспроизводить список воспроизведения, содержащий более двух элементов ( aosp/1108440 ).
  • Исправлена ​​проблема, из-за которой игрок продолжал играть на SurfaceView, даже если он невидим.
  • Исправлена ​​проблема с воспроизведением VideoView, возникающая при вызове setViewType перед setPlayer

Версия 1.0.0

5 сентября 2019 г.

Выпущен androidx.media2:media2-*:1.0.0 . Это коммиты, включенные в media2-{player, session}:1.0.0 , и это коммиты, включенные в media2-widget:1.0.0 .

Основные возможности Media2 1.0.0

Media2 — это следующее поколение следующих API-интерфейсов мультимедиа: MediaSession , MediaController , MediaBrowser , MediaBrowserService , VideoView и MediaControlView .

  • media2.player.MediaPlayer
    • API в основном соответствуют android.media.MediaPlayer , а базовый движок — ExoPlayer.
    • Встроенная фокусировка звука и обработка шума
    • Реализует SessionPlayer
  • media2.session.MediaSession
    • Обеспечивает детальный контроль разрешений.
    • Поддерживает пользовательские макеты
    • Легко использовать с SessionPlayer, например androidx.media2.player.MediaPlayer
    • Совместимость с MediaControllerCompat
  • media2.session.MediaSessionService
    • Облегченная версия MediaLibraryService
    • Обеспечивает управление жизненным циклом службы для фонового воспроизведения.
    • Совместимость с MediaControllerCompat и MediaBrowserServiceCompat
  • media2.session.MediaLibraryService
    • Поддерживает улучшенную нумерацию страниц для навигации по элементам мультимедиа или результатам поиска, содержащим большое количество элементов.
    • Совместимость с MediaControllerCompat и MediaBrowserServiceCompat
  • media2.session.MediaController
    • Может подключаться к MediaSession , MediaSessionService и MediaLibraryService
    • Совместимость с MediaSessionCompat и MediaBrowserServiceCompat
  • media2.session.MediaBrowser
    • Наследует MediaController
    • Может подключаться к MediaSession , MediaSessionService и MediaLibraryService
    • Совместимость с MediaSessionCompat и MediaBrowserServiceCompat
  • media2.widget.VideoView
    • Содержит все функции android.widget.VideoView
    • Обеспечивает переключение между TextureView и SurfaceView
    • Может работать вместе с MediaSession
  • media2.widget.MediaControlView
    • Лучше выглядеть и чувствовать себя
    • Содержит всю функциональность android.widget.MediaController
    • Обеспечивает выбор дорожки субтитров, выбор скорости воспроизведения и полноэкранный режим.

Версия 1.0.0-rc02

22 августа 2019 г.

Выпущен androidx.media2:media2-*:1.0.0-rc02 , изменения, включенные в эту версию, можно найти здесь . Этот выпуск включает androidx.media2:media2-widget:1.0.0-rc02 а изменения, включенные в эту версию, можно найти здесь .

Новые возможности

  • setPlayer или setController больше нельзя вызывать через MediaControlView (MCV), если MediaControlView принадлежит VideoView

Исправления ошибок

  • MediaControlView : кнопки «Следующая» и «Предыдущая» доступны для нажатия только при наличии следующих или предыдущих элементов мультимедиа.
  • MediaControlView : исправлено ненадежное исключение NullPointerException при вызове onAttachedToWindow()
  • Виджет Media2 теперь правильно обрабатывает метаданные нового медиа-элемента при изменении текущего медиа-элемента.

Media2-Виджет Версия 1.0.0-beta01

2 июля 2019 г.

Выпущен androidx.media2:media2-widget:1.0.0-beta01 . Коммиты, включенные в эту версию, можно найти здесь .

Новые возможности

  • Фоновое воспроизведение. Вместо создания проигрывателя внутри VideoView VideoView может использовать SessionPlayer или MediaController, чтобы приложение могло плавно переходить в режим фонового воспроизведения.
  • Удалена зависимость от библиотеки media2-player.
  • Добавлен onViewTypeChangedListener

Изменения API

  • Изменение видимости с общедоступной на защищенную:
    • VideoView.onMeasure(int, int)
    • VideoView.onAttachedToWindow()
    • VideoView.onDetachedFromWindow()
    • MediaControlView.onMeasure(int, int)
  • Удаленный:
    • VideoView.getSessionToken()
    • VideoView.setAudioAttributes(AudioAttributesCompat)
    • VideoView.setMedaItem(MediaItem)
    • MediaControlView.setSessionToken(SessionToken)
  • Добавлен:
    • VideoView.setMediaController(MediaController)
    • VideoView.getMediaControlView()
    • VideoView.setMediaController(MediaController)
    • VideoView.setPlayer(SessionPlayer)
    • VideoView.setOnViewTypeChangedListener()
    • MediaControlView.setPlayer(SessionPlayer)
    • MediaControlView.setMediaController(MediaContoller)

Версия 1.0.0-rc01

18 июня 2019 г.

androidx.media2:media2-common:1.0.0-rc01 , androidx.media2:media2-player:1.0.0-rc01 и androidx.media2:media2-session:1.0.0-rc01 выпущены. Коммиты, включенные в эту версию, можно найти здесь .

Изменения API

  • Зависимости от ListenableFuture были перенесены обратно в автономную реализацию Guava.

  • Обратите внимание: если у вас есть целевые объекты тестирования, которые зависят от полного артефакта Guava, вы можете столкнуться с конфликтом разрешения зависимостей при использовании определенных версий подключаемого модуля Android Gradle. Если вы столкнулись с ошибкой Could not resolve all artifacts связанной с ListenableFuture , вы можете временно обойти эту проблему, добавив android.dependency.useConstraints=false в конфигурацию сборки вашего проекта. В настоящее время мы работаем над постоянным исправлением подключаемого модуля Android Gradle, которое будет выпущено позднее.

Версия 1.0.0-beta02

5 июня 2019 г.

Выпущены androidx.media2:media2-common:1.0.0-beta02 , androidx.media2:media2-player:1.0.0-beta02 и androidx.media2:media2-session:1.0.0-beta02 . Коммиты, включенные в эту версию, можно найти здесь .

Исправления ошибок

  • Установка отрицательной скорости воспроизведения в androidx.media.player.MediaPlayer вернет RESULT_ERROR_BAD_VALUE.
  • Замените Guava ListenableFuture реализацией Jetpack ( aosp/968828 )

Версия 1.0.0-бета01

7 мая 2019 г.

Выпущены androidx.media2:media2-common:1.0.0-beta01 , androidx.media2:media2-player:1.0.0-beta01 и androidx.media2:media2-session:1.0.0-beta01 . Коммиты, включенные в эту версию, можно найти здесь .

Новые возможности

  • Библиотеки разделены на 3 части: media2-common, media2-player, media2-session.
  • Исключение IllegalPointerException изменено на NullPointerException для нулевых аргументов, помеченных как @NonNull.

Изменения API

  • Представлен MediaController.Builder
  • Добавлены методы установки для необязательных полей FileMediaItem.Builder
  • MediaController и MediaBrowser могут отправлять подсказки о подключении приложения в MediaSession , MediaSessionService или MediaLibraryService
  • Некоторые методы переименованы в соответствии с API-интерфейсами Android 10 Media2.

Версия 1.0.0-альфа04

17 декабря 2018 г.

Изменения API

  • Переименованы следующие классы:
    • MediaPlayer2MediaPlayer
    • MediaSession2MediaSession
    • MediaController2MediaController
    • MediaSessionService2MediaSessionService
    • MediaLibraryService2MediaLibraryService
    • MediaBrowser2MediaBrowser
    • MediaMetadata2MediaMetadata
    • Rating2Rating
    • SessionToken2SessionToken
    • SessionCommand2SessionCommand
    • SessionCommandGroup2SessionCommandGroup
  • Объединены следующие классы:
    • DataSourceDesc2 и MediaItem2 объединены в MediaItem
    • MediaPlaylistAgent и MediaPlayerConnector объединены в SessionPlayer
  • Добавлены следующие подклассы Rating : HeartRating , PercentageRating , StarRating и ThumbRating
  • Media2 теперь использует ListenableFuture для асинхронных методов.