Media2
androidx.media2.common
androidx.media2.player
androidx.media2.session
androidx.media2.widget
Bản cập nhật mới nhất | Bản phát hành ổn định | Bản phát hành dùng thử | Bản phát hành beta | Bản phát hành alpha |
---|---|---|---|---|
Ngày 10 tháng 1 năm 2024 | 1.3.0 | - | - | - |
Khai báo phần phụ thuộc
Để thêm một phần phụ thuộc trên Media2, bạn phải thêm kho lưu trữ Google Maven vào dự án. Đọc nội dung Kho lưu trữ Maven của Google để biết thêm thông tin.
Thêm các phần phụ thuộc cho cấu phần phần mềm bạn cần trong tệp build.gradle
cho ứng dụng hoặc mô-đun của mình:
Groovy
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" }
Kotlin
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") }
Để biết thêm thông tin về các phần phụ thuộc, hãy xem nội dung Thêm phần phụ thuộc cho bản dựng.
Ý kiến phản hồi
Ý kiến phản hồi của bạn có thể giúp chúng tôi cải thiện Jetpack. Hãy cho chúng tôi biết nếu bạn phát hiện lỗi mới hoặc có ý tưởng cải thiện thư viện này. Vui lòng xem các lỗi hiện có trong thư viện này trước khi báo một lỗi mới. Bạn có thể thêm lượt bình chọn cho lỗi hiện có bằng cách nhấp vào nút dấu sao.
Hãy xem tài liệu về Công cụ theo dõi lỗi để biết thêm thông tin.
Phiên bản 1.3
Phiên bản 1.3.0
Ngày 10 tháng 1 năm 2024
Phát hành androidx.media2:media2-*:1.3.0
. Phiên bản 1.3.0 bao gồm các thay đổi sau.
Những thay đổi quan trọng kể từ phiên bản 1.2.0
- androidx.media2 hiện không dùng nữa. Thay vào đó, hãy sử dụng androidx.media3.
Phiên bản 1.3.0-rc01
Ngày 13 tháng 12 năm 2023
Phát hành androidx.media2:media2-*:1.3.0-rc01
mà không có thay đổi nào từ Media2 1.3.0-beta01. Phiên bản 1.3.0-rc01 bao gồm các thay đổi sau.
Phiên bản 1.3.0-beta01
Ngày 29 tháng 11 năm 2023
Phát hành androidx.media2:media2-*:1.3.0-beta01
mà không có thay đổi nào từ Media2 1.3.0-alpha01
. Phiên bản 1.3.0-beta01 bao gồm các thay đổi sau.
Phiên bản 1.3.0-alpha01
Ngày 15 tháng 11 năm 2023
Phát hành androidx.media2:media2-*:1.3.0-alpha01
. Phiên bản 1.3.0-alpha01 bao gồm các thay đổi sau.
Thay đổi về API
androidx.media2
hiện không dùng nữa. Thay vào đó, hãy sử dụngandroidx.media3
. (I53164)
Phiên bản 1.2.1
Phiên bản 1.2.1
Ngày 9 tháng 2 năm 2022
Phát hành androidx.media2:media2-*:1.2.1
. Phiên bản 1.2.1 bao gồm các thay đổi sau.
Sửa lỗi
- Khắc phục sự cố kiểm tra đối với Parcelables tuỳ chỉnh khi nhắm mục tiêu API 33.
Phiên bản 1.2.0
Phiên bản 1.2.0
Ngày 15 tháng 9 năm 2021
Phát hành androidx.media2:media2-*:1.2.0
. Phiên bản 1.2.0 bao gồm các thay đổi sau.
Những thay đổi quan trọng kể từ phiên bản 1.1.0
- Hỗ trợ khả năng tương tác với trình đa phương tiện (prepare|play)From(MediaId|Uri|Search) của AndroidX
- Thêm
MEDIA_URI_PATH_SET_MEDIA_URI
vàMEDIA_URI_QUERY_URI
vàoMediaConstants
Phiên bản 1.2.0-rc01
Ngày 1 tháng 9 năm 2021
Phát hành androidx.media2:media2-*:1.2.0-rc01
. Phiên bản 1.2.0-rc01 bao gồm bao gồm các thay đổi sau.
Sửa lỗi
- Khắc phục lỗi ANR khi đóng thông báo đa phương tiện (Ifdcc2, b/148011394)
Phiên bản 1.2.0-beta01
Ngày 30 tháng 6 năm 2021
Phát hành androidx.media2:media2-*:1.2.0-beta01
. Phiên bản 1.2.0-beta01 bao gồm các thay đổi sau.
Tính năng mới
- Hỗ trợ khả năng tương tác với trình đa phương tiện (prepare|play)From(MediaId|Uri|Search) của AndroidX
Thay đổi về API
- Thêm
MEDIA_URI_PATH_SET_MEDIA_URI
vàMEDIA_URI_QUERY_URI
trong MediaConstants
Phiên bản 1.2.0-alpha01
Ngày 21 tháng 4 năm 2021
Phát hành androidx.media2:media2-*:1.2.0-alpha01
. Phiên bản 1.2.0-alpha01 bao gồm các thay đổi sau.
Thay đổi về API
- Thêm tính năng hỗ trợ cho (prepare|play)From(MediaId|Uri|Search) (I13475, b/176949057)
Sửa lỗi
- Khắc phục sự cố gây nghẽn xảy ra do các khối được đồng bộ hoá không cần thiết.
- Cài đặt lại trình phát khi không có mục có thể phát
- Cho phép onCurrentMediaItemChanged nhận mục đa phương tiện rỗng
- Cập nhật thông báo ngay khi thay đổi mục đa phương tiện hiện tại
- Khắc phục sự cố khả năng tương tác với bộ điều khiển tương thích ngay sau khi tạo phiên
Phiên bản 1.1.3
Phiên bản 1.1.3
Ngày 21 tháng 4 năm 2021
Phát hành androidx.media2:media2-*:1.1.3
. Phiên bản 1.1.3 bao gồm các thay đổi sau.
Sửa lỗi
- Khắc phục sự cố gây nghẽn xảy ra do các khối được đồng bộ hoá không cần thiết.
Phiên bản 1.1.2
Phiên bản 1.1.2
Ngày 27 tháng 1 năm 2021
Phát hành androidx.media2:media2-*:1.1.2
. Phiên bản 1.1.2 bao gồm các thay đổi sau.
Sửa lỗi
- Sửa lỗi NPE từ VersionedParcelable (I1ec28, b/177060207)
Phiên bản 1.1.1
Phiên bản 1.1.1
Ngày 16 tháng 12 năm 2020
Phát hành androidx.media2:media2-*:1.1.1
. Phiên bản 1.1.1 bao gồm các thay đổi sau.
Sửa lỗi
- Cập nhật thông báo nội dung đa phương tiện khi mục nội dung đa phương tiện này được thay đổi.
Phiên bản 1.1.0
Phiên bản 1.1.0
Ngày 2 tháng 12 năm 2020
Phát hành androidx.media2:media2-*:1.1.0
. Phiên bản 1.1.0 bao gồm các thay đổi sau.
Thay đổi lớn kể từ phiên bản 1.0.0
- Thêm nhiều API khác để xử lý các bản nhạc đa phương tiện
- Hỗ trợ tốt hơn cho khả năng tương tác với thư viện đa phương tiện AndroidX
- Thêm
MediaSession#setMediaUri
- Đặt
MediaSessionCompat.Token
thông quaMediaSession#getSessionCompatToken()
- Thêm
Phiên bản 1.1.0-rc01
Ngày 28 tháng 10 năm 2020
Phát hành androidx.media2:media2-*:1.1.0-rc01
. Phiên bản 1.1.0-rc01 bao gồm các thay đổi sau.
- Khắc phục lỗi MediaController đã thông báo các lệnh gọi lại khi giữ khoá, dẫn đến các tắc nghẽn có thể xảy ra (I76c56
- Khắc phục lỗi
MediaSessionImplBase#isClosed()
có thể gặp sự cố khi gọigetCurrentControllerInfo()
trênMediaSessionCompat
đã phát hành. (aosp/1423291] - Khắc phục lỗi media2
MediaSession
không đặt mã mục xếp hàng đang hoạt động thànhPlaybackStateCompat
(aosp/1421652) - Gắn thêm cờ vào mã
BIND_INCLUDE_CAPABILITIES
khi liên kết dịch vụ, cho phép các ứng dụng đa phương tiện không có giao diện người dùng truy cập thông tin vị trí nếu có quyền truy cập. Điều này sẽ đặc biệt hữu ích đối với các ứng dụng Android Auto. (aosp/1440731)
Phiên bản 1.1.0-beta01
Ngày 16 tháng 9 năm 2020
Phát hành androidx.media2:media2-*:1.1.0-beta01
. Phiên bản 1.1.0-beta01 bao gồm các thay đổi sau.
Sửa lỗi
- Đặt lại thông tin vị trí hiện tại khi mục nội dung đa phương tiện thay đổi
- Gửi siêu dữ liệu và trạng thái lưu vào bộ đệm khi được kết nối
- Khắc phục sự cố khi gửi dữ liệu lớn giữa một phiên và một bộ điều khiển
- Thêm mã
<queries>
vào tệp kê khai đối với media và media2 cho Android 11 - Sửa lỗi NPE cho
MediaController.getPlaylist()
- Tắt thanh tiến trình của
MediaControlView
khi không cho phép lệnh tìm kiếm - Thông báo cho
PlaybackStateCompat
khi mục đa phương tiện hiện tại của một phiên đã thay đổi - Sửa lỗi phân vùng của
SessionPlayer.TrackInfo
Phiên bản 1.1.0-alpha01
Ngày 24 tháng 6 năm 2020
Phát hành androidx.media2:media2-*:1.1.0-alpha01
. Phiên bản 1.1.0-alpha01 bao gồm các thay đổi sau.
Sửa lỗi
- Sửa lỗi về thời gian khi cập nhật siêu dữ liệu (I45567, b/143999611)
- SessionResult sẽ lưu giữ MediaItem từ PlayerResult (I927b0, b/154885520)
- Sửa lỗi
MediaController#setVolumeTo()
có thể thay đổi âm lượng phát trực tiếp không chính xác. (I76870, b/151204736)
Phiên bản 1.0.3
Phiên bản 1.0.3
Ngày 19 tháng 2 năm 2020
Phát hành androidx.media2:media2-*:1.0.3
. Phiên bản 1.0.3 của media2-{common,player,session}
bao gồm các thay đổi sau và Phiên bản 1.0.3 của media2-widget
bao gồm các thay đổi sau
Sửa lỗi
- Khắc phục lỗi NullPointerException khi tạo MediaController với lệnh gọi lại rỗng
- Khắc phục lỗi
onPlaylistChanged()
không gọi được lệnh sauMediaPlayer.setMediaItem
Phiên bản 1.0.2
Phiên bản 1.0.2
Ngày 5 tháng 2 năm 2020
Phát hành androidx.media2:media2-*:1.0.2
. Phiên bản 1.0.2 của media2-{common,player,session}
bao gồm các thay đổi sau và Phiên bản 1.0.2 của media2-widget
bao gồm các thay đổi sau
Sửa lỗi
- Khắc phục lỗi
IndexOutOfBoundsException
trongMediaPlayer#getSelectedTrack()
. (aosp/987003) - Nâng cấp xử lý trường hợp trong đó ExoPlayer gọi lệnh getDuration() và mục đa phương tiện không tồn tại (aosp/987484)
- Sửa lỗi ExoPlayer không gửi
IllegalStateException
khigetDuration()
được gọi ở trạng tháiIDLE
(aosp/987246) - Không cho phép Parcelables tuỳ chỉnh đối với media2 (aosp/1091056)
- Sửa lỗi gây hiện tượng treo trong
close()
(aosp/1096455) - MediaBrowser: Cải thiện việc xử lý các lỗi trong
subscribe()
vớiMediaBrowserService
(aosp/1158057) - Khắc phục sự cố MediaController với Framework MediaSession(aosp/1177663)
- Không thông báo thông tin phiên qua các lệnh gọi lại khi kết nối được thực hiện (aosp/1195030, b/142925848)
- Khắc phục lỗi SessionResult có thể được MediaController gửi nội dung đột ngột nhiều lần (aosp/1198634)
- Khắc phục lỗi trong đó MediaController có thể gửi các lệnh không được phép đến MediaSession, vì vậy hiện tại MediaSession gửi
RESULT_ERROR_PERMISSION_DENIED
(aosp/1204183) - Sửa một lỗi không ổn định với
MediaControllerView#setPlayer
(aosp/987004)
Phiên bản 1.0.1
Phiên bản 1.0.1
Ngày 9 tháng 10 năm 2019
Phát hành androidx.media2:media2-*:1.0.1
. Phiên bản 1.0.1 của androidx.media2:media2-{player, session}:1.0.1
bao gồm các thay đổi sau và Phiên bản 1.0.1 của androidx.media2:media2-widget:1.0.1
bao gồm các thay đổi sau
Sửa lỗi
- Sửa lỗi RuntimeException khi một lớp con của MediaItem được gửi qua quy trình (aosp/1098971)
- Khắc phục lỗi trong đó MediaPlayer chỉ gọi mã
onCurrentMediaItemChanged()
một lần khi bật danh sách phát - Khắc phục lỗi trong đó MediaPlayer có thể bật danh sách phát nhiều hơn 2 mục (aosp/1108440)
- Khắc phục lỗi trong đó trình phát tiếp tục phát trên SurfaceView, mặc dù trình phát này không hiển thị
- Khắc phục lỗi bật lại VideoView xuất hiện khi lệnh gọi được tạo cho
setViewType
trướcsetPlayer
Phiên bản 1.0.0
Ngày 5 tháng 9 năm 2019
Phát hành androidx.media2:media2-*:1.0.0
. Đây là các thay đổi được bao gồm media2-{player, session}:1.0.0 và đây là các thay đổi được bao gồm media2-widget:1.0.0.
Các tính năng chính của Media2 1.0.0
Media2 là thế hệ tiếp theo của các API đa phương tiện sau đây: MediaSession
, MediaController
, MediaBrowser
, MediaBrowserService
, VideoView
và MediaControlView
.
media2.player.MediaPlayer
- Các API đa phần được khớp với
android.media.MediaPlayer
và công cụ cơ bản là ExoPlayer - Tích hợp quyền phát âm thanh và ô điều khiển tiếng ồn
- Triển khai SessionPlayer
- Các API đa phần được khớp với
media2.session.MediaSession
- Cung cấp các quyền kiểm soát chi tiết
- Hỗ trợ các bố cục tuỳ chỉnh
- Dễ dàng sử dụng với sessionPlayer, chẳng hạn như
androidx.media2.player.MediaPlayer
- Có khả năng tương tác với
MediaControllerCompat
media2.session.MediaSessionService
- Phiên bản gọn nhẹ của
MediaLibraryService
- Cung cấp tính năng quản lý vòng đời dịch vụ để phát trong nền
- Có khả năng tương tác với
MediaControllerCompat
vàMediaBrowserServiceCompat
- Phiên bản gọn nhẹ của
media2.session.MediaLibraryService
- Hỗ trợ phân trang tốt hơn để điều hướng các mục đa phương tiện hoặc kết quả tìm kiếm chứa nhiều mục
- Có khả năng tương tác với
MediaControllerCompat
vàMediaBrowserServiceCompat
media2.session.MediaController
- Có thể kết nối với
MediaSession
,MediaSessionService
vàMediaLibraryService
- Có khả năng tương tác với
MediaSessionCompat
vàMediaBrowserServiceCompat
- Có thể kết nối với
media2.session.MediaBrowser
- Kế thừa
MediaController
- Có thể kết nối với
MediaSession
,MediaSessionService
vàMediaLibraryService
- Có khả năng tương tác với
MediaSessionCompat
vàMediaBrowserServiceCompat
- Kế thừa
media2.widget.VideoView
- Chứa tất cả chức năng của
android.widget.VideoView
- Cung cấp chuyển đổi giữa
TextureView
vàSurfaceView
- Có thể làm việc cùng với
MediaSession
- Chứa tất cả chức năng của
media2.widget.MediaControlView
- Giao diện và trải nghiệm tốt hơn
- Chứa tất cả chức năng của
android.widget.MediaController
- Cung cấp lựa chọn bản phụ đề, lựa chọn tốc độ phát và chế độ toàn màn hình
Phiên bản 1.0.0-rc02
Ngày 22 tháng 8 năm 2019
androidx.media2:media2-*:1.0.0-rc02
đã được phát hành và bạn có thể tìm những thay đổi có trong phiên bản này tại đây. Bản phát hành này gồm androidx.media2:media2-widget:1.0.0-rc02
và bạn có thể tìm những thay đổi có trong phiên bản này tại đây.
Tính năng mới
setPlayer
hoặcsetController
không còn được phép gọi lệnh quaMediaControlView
(MCV) nữa khiMediaControlView
thuộc vềVideoView
Sửa lỗi
MediaControlView
: Các nút tiếp theo và nút trước chỉ có thể nhấp được khi có các mục nội dung đa phương tiện tiếp theo hoặc trước đóMediaControlView
: Sửa lỗiNullPointerException
không ổn định khi gọionAttachedToWindow()
- Hiện tại, tiện ích Media2 xử lý siêu dữ liệu của mục nội dung đa phương tiện mới đúng cách khi mục nội dung đa phương tiện hiện tại thay đổi
Media2-Widget phiên bản 1.0.0-beta01
Ngày 2 tháng 7 năm 2019
Phát hành androidx.media2:media2-widget:1.0.0-beta01
. Bạn có thể xem các thay đổi trong phiên bản này tại đây.
Tính năng mới
- Phát ở chế độ nền: Thay vì tạo trình phát bên trong VideoView, VideoView có thể sử dụng SessionPlayer hoặc MediaController để ứng dụng có thể chuyển sang chế độ phát ở chế độ nền một cách liền mạch.
- Xoá phần phụ thuộc với thư viện media2-player
- Thêm
onViewTypeChangedListener
Thay đổi về API
- Chế độ hiển thị thay đổi từ công khai thành được bảo vệ:
VideoView.onMeasure(int, int)
VideoView.onAttachedToWindow()
VideoView.onDetachedFromWindow()
MediaControlView.onMeasure(int, int)
- Xoá:
VideoView.getSessionToken()
VideoView.setAudioAttributes(AudioAttributesCompat)
VideoView.setMedaItem(MediaItem)
MediaControlView.setSessionToken(SessionToken)
- Thêm:
VideoView.setMediaController(MediaController)
VideoView.getMediaControlView()
VideoView.setMediaController(MediaController)
VideoView.setPlayer(SessionPlayer)
VideoView.setOnViewTypeChangedListener()
MediaControlView.setPlayer(SessionPlayer)
MediaControlView.setMediaController(MediaContoller)
Phiên bản 1.0.0-rc01
Ngày 18 tháng 6 năm 2019
Phát hành androidx.media2:media2-common:1.0.0-rc01
, androidx.media2:media2-player:1.0.0-rc01
và androidx.media2:media2-session:1.0.0-rc01
. Bạn có thể xem các thay đổi trong phiên bản này tại đây.
Thay đổi về API
Các phần phụ thuộc vào
ListenableFuture
đã được di chuyển trở lại phần triển khai độc lập của Guava.Lưu ý rằng nếu bạn có các mục tiêu thử nghiệm phụ thuộc vào cấu phần phần mềm Guava đầy đủ, bạn có thể phải giải quyết xung đột phần phụ thuộc khi sử dụng một số phiên bản nhất định của Android Gradle Plugin. Nếu gặp phải lỗi
Could not resolve all artifacts
liên quan đếnListenableFuture
, bạn có thể tạm thời khắc phục sự cố này bằng cách thêmandroid.dependency.useConstraints=false
vào cấu hình của bản dựng của dự án. Chúng tôi đang làm việc trên một bản sửa lỗi vĩnh viễn trong Plugin Android Gradle. Bản sửa lỗi đó sẽ được phát hành sau này.
Phiên bản 1.0.0-beta02
Ngày 5 tháng 6 năm 2019
Phát hành androidx.media2:media2-common:1.0.0-beta02
, androidx.media2:media2-player:1.0.0-beta02
và androidx.media2:media2-session:1.0.0-beta02
. Bạn có thể xem các thay đổi trong phiên bản này tại đây.
Sửa lỗi
- Đang đặt tốc độ phát lại âm bản trên androidx.media.player.MediaPlayer sẽ trả về câu lệnh RESULT_ERROR_BAD_VALUE.
- Thay thế Guava ListenableFuture bằng hoạt động triển khai Jetpack (aosp/968828)
Phiên bản 1.0.0-beta01
Ngày 7 tháng 5 năm 2019
Phát hành androidx.media2:media2-common:1.0.0-beta01
, androidx.media2:media2-player:1.0.0-beta01
và androidx.media2:media2-session:1.0.0-beta01
. Bạn có thể xem các thay đổi trong phiên bản này tại đây.
Tính năng mới
- Các thư viện được phân tách thành 3 phần: media2-common, media2-player, media2-session
- Thay đổi
IllegalPointerException
thànhNullPointerException
cho các đối số rỗng được đánh dấu là @NonNull.
Thay đổi về API
- Giới thiệu
MediaController.Builder
- Thêm các phương thức setter cho các trường tuỳ chọn của
FileMediaItem.Builder
MediaController
vàMediaBrowser
có thể gửi gợi ý kết nối của ứng dụng tớiMediaSession
,MediaSessionService
hoặcMediaLibraryService
- Một số phương pháp được đổi tên để tuân theo API Android 10 Media2
Phiên bản 1.0.0-alpha04
Ngày 17 tháng 12 năm 2018
Thay đổi về API
- Đổi tên các lớp sau:
MediaPlayer2
→MediaPlayer
MediaSession2
→MediaSession
MediaController2
→MediaController
MediaSessionService2
→MediaSessionService
MediaLibraryService2
→MediaLibraryService
MediaBrowser2
→MediaBrowser
MediaMetadata2
→MediaMetadata
Rating2
→Rating
SessionToken2
→SessionToken
SessionCommand2
→SessionCommand
SessionCommandGroup2
→SessionCommandGroup
- Hợp nhất các lớp sau:
DataSourceDesc2
vàMediaItem2
được kết hợp thànhMediaItem
MediaPlaylistAgent
vàMediaPlayerConnector
được kết hợp thànhSessionPlayer
- Thêm các lớp con sau của
Rating
:HeartRating
,PercentageRating
,StarRating
vàThumbRating
Media2
hiện đang sử dụngListenableFuture
cho các phương thức không đồng bộ