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 giao tiếp bằng 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 phổ biến 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 Jetpack PiP 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, vì vậy, 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. - Tham số PiP không chính xác: Thư viện này cung cấp một giải pháp hợp nhất để đặt chính xác các tham số PiP, chẳng hạn như
setSourceRectHint, nhằm tạo ảnh động mượt mà và chất lượng cao trong quá trình phát nội dung nghe nhìn. - Lệnh gọi lại trạng thái PiP hợp nhất: Thư viện 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 lượng mã nguyên mẫu lặp đi lặp lại bằng cách cung cấp các tập hợp
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ư các nút điều khiển phát và các thao tác gọi video. - Đảm bảo khả năng tương thích 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 sử dụng các tính năng bổ sung mà không cần tốn nhiều công sức.
Sử dụng Jetpack
Để sử dụng Thư viện Jetpack, hãy thay thế việc triển khai PiP tuỳ chỉnh hiện có bằng các API Thư viện Jetpack. Độ phức tạp và chi phí sử dụng của 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 PiP và các bước triển khai cần thiết:
Điều hướng
Ứ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 tính năng điều hướng và đặt tỷ lệ khung hình. Thư viện Jetpack sẽ xử lý phần còn lại.
Những điểm khác biệt chính:
- Không cần phân biệt tính năng tự động vào và tính năng vào cũ trên phía ứng dụng.
- Giao diện gọi lại hợp nhất.
- Trình tạo
PictureInPictureParamsmới để 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.
Những điểm khác biệt chính:
- Không cần phân biệt tính năng tự động vào và tính năng vào cũ trên phía ứng dụng.
- Giao diện gọi lại hợp nhất.
- Trình tạo
PictureInPictureParamsmới để 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 đại diệ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 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 tập hợp các đối tượng RemoteAction được xác định trước, tương tự như
các đối tượng được sử dụng trong các tình huống gọi video.
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à kiểm soát tính năng tự động vào.
- Theo dõi hình học liên tục bằng
SourceRectHint.