Thư viện Jetpack Hình trong hình (PiP) cung cấp một giải pháp tinh giản và mạnh mẽ để các nhà phát triển ứng dụng Android triển khai chức năng PiP, đặc biệt là đối với các ứng dụng phát nội dung nghe nhìn, ứng dụng liên lạc video và ứng dụng điều hướng. Bằng cách cung cấp một API hợp nhất, thư viện này giúp loại bỏ mã nguyên mẫu, các lỗi thường gặp trong ứng dụng và cải thiện chất lượng tổng thể của trải nghiệm người dùng PiP.
Thư viện PiP Jetpack hỗ trợ các API PiP hiện có bằng cách giải quyết một số thách thức và điểm không nhất quán chính trong hệ sinh thái Android:
- Phân mảnh hệ điều hành: Thư viện này tự động xử lý các điểm khác biệt trong lệnh gọi API PiP trên nhiều phiên bản Android, chẳng hạn như sử dụng
enterPictureInPictureModetrước Android 12 vàisAutoEnterEnabledsau Android 12, nên nhà phát triển không cần quản lý các điểm khác biệt về phiên bản. - Các tham số PiP không chính xác: Cung cấp một giải pháp hợp nhất để thiết lập chính xác các tham số PiP, chẳng hạn như
setSourceRectHint, nhằm tạo ra các ảnh động mượt mà và chất lượng cao trong quá trình phát nội dung nghe nhìn. - Các lệnh gọi lại trạng thái PiP hợp nhất: Thao tác này hợp nhất
onPictureInPictureModeChangedvàonPictureInPictureUiStateChangedthành một giao diện gọi lại hợp nhất duy nhất (PictureInPictureDelegate.OnPictureInPictureEventListener) để đơn giản hoá việc quản lý trạng thái và giao diện người dùng. - Giảm mã nguyên mẫu: Thư viện này giảm số lượng mã nguyên mẫu lặp đi lặp lại bằng cách cung cấp các nhóm
RemoteActionsđược xác định trước cho các trường hợp sử dụng phổ biến, chẳng hạn như bộ điều khiển chế độ phát và các thao tác gọi video. - Đảm bảo khả năng tương thích với các phiên bản trong tương lai: Các tính năng PiP khác được cung cấp thông qua thư viện Jetpack, cho phép người dùng truy cập vào các chức năng bổ sung mà không tốn nhiều công sức.
Sử dụng Jetpack
Để áp dụng Thư viện Jetpack, hãy thay thế chế độ PiP tuỳ chỉnh hiện có bằng các API Thư viện Jetpack. Độ phức tạp và chi phí áp dụng sẽ khác nhau tuỳ thuộc vào cách triển khai hiện tại của ứng dụng.
Các phần sau đây mô tả một số trường hợp sử dụng điển hình của chế độ PiP và các bước triển khai cần thiết:
Di chuyển
Ứng dụng thông báo cho thư viện về trạng thái hoạt động hoặc không hoạt động của thành phần điều hướng và đặt tỷ lệ khung hình. Thư viện Jetpack sẽ xử lý phần còn lại.
Điểm khác biệt chính:
- Không cần phân biệt tính năng tự động nhập và tính năng nhập cũ ở phía ứng dụng.
- Các giao diện gọi lại được hợp nhất.
- Trình tạo
PictureInPictureParamsmới để có khả năng tương thích ngược.
Gọi video
Ứng dụng thông báo cho thư viện về trạng thái đang hoạt động hoặc không hoạt động của cuộc gọi và đặt tỷ lệ khung hình.
Điểm khác biệt chính:
- Không cần phân biệt tính năng tự động nhập và tính năng nhập cũ ở phía ứng dụng.
- Các giao diện gọi lại được hợp nhất.
- Trình tạo
PictureInPictureParamsmới để có khả năng tương thích ngược. - Biểu tượng thao tác được chuẩn hoá cho cuộc gọi video.
Phát lại video
Thư viện Jetpack cung cấp các uỷ quyền trình phát mà bạn có thể tích hợp để quản lý việc bật hoặc tắt chế độ PiP và đặt chính xác gợi ý về hình chữ nhật nguồn.
Bạn cũng có thể chọn sử dụng một nhóm đối tượng RemoteAction được xác định trước, tương tự như các đối tượng được dùng trong các trường hợp gọi video.
Các tính năng chính:
- Xử lý khả năng tương thích ngược, không cần kiểm tra phiên bản hệ điều hành.
- Đồng bộ hoá trạng thái phát và chế độ kiểm soát tự động nhập.
- Theo dõi hình học liên tục bằng
SourceRectHint.