Медиа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 содержит эти коммиты.
Исправления ошибок
- Исправлен NPE из VersionedParcelable ( I1ec28 , b/177060207 ).
Версия 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
- API в основном соответствуют
-
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
- Переименованы следующие классы:
-
MediaPlayer2
→MediaPlayer
-
MediaSession2
→MediaSession
-
MediaController2
→MediaController
-
MediaSessionService2
→MediaSessionService
-
MediaLibraryService2
→MediaLibraryService
-
MediaBrowser2
→MediaBrowser
-
MediaMetadata2
→MediaMetadata
-
Rating2
→Rating
-
SessionToken2
→SessionToken
-
SessionCommand2
→SessionCommand
-
SessionCommandGroup2
→SessionCommandGroup
-
- Объединены следующие классы:
-
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 содержит эти коммиты.
Исправления ошибок
- Исправлен NPE из VersionedParcelable ( I1ec28 , b/177060207 ).
Версия 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
- API в основном соответствуют
-
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
- Переименованы следующие классы:
-
MediaPlayer2
→MediaPlayer
-
MediaSession2
→MediaSession
-
MediaController2
→MediaController
-
MediaSessionService2
→MediaSessionService
-
MediaLibraryService2
→MediaLibraryService
-
MediaBrowser2
→MediaBrowser
-
MediaMetadata2
→MediaMetadata
-
Rating2
→Rating
-
SessionToken2
→SessionToken
-
SessionCommand2
→SessionCommand
-
SessionCommandGroup2
→SessionCommandGroup
-
- Объединены следующие классы:
-
DataSourceDesc2
иMediaItem2
объединены вMediaItem
-
MediaPlaylistAgent
иMediaPlayerConnector
объединены вSessionPlayer
-
- Добавлены следующие подклассы
Rating
:HeartRating
,PercentageRating
,StarRating
иThumbRating
-
Media2
теперь используетListenableFuture
для асинхронных методов.