Tùy chỉnh phương tiện

Phương tiện thuộc về một bộ ứng dụng hệ thống (ví dụ: Trình quay số và Trình khởi chạy ứng dụng). Các ứng dụng này chia sẻ các kiểu và nội dung chung được xác định ở các cấp độ khác nhau trong cấu trúc AOSP.

  • framework/base . Tất cả các kiểu cơ sở của Android đều được xác định ở đây.
  • packages/services/Car/car_product/overlay . Chứa các lớp phủ tại thời điểm xây dựng sửa đổi tài nguyên khung/cơ sở tiêu chuẩn để tạo ra giao diện AOSP của Android Automotive OS. OEM có thể chọn loại trừ lớp phủ này và sử dụng lớp phủ của riêng họ.
  • packages/apps/Car/libs/car-ui-lib . Thư viện này xác định các thành phần và tài nguyên AAOS phổ biến cho các ứng dụng hệ thống cũng như các ứng dụng tách nhóm được thiết kế để tùy chỉnh. Để biết chi tiết, hãy xem Hướng dẫn tích hợp thư viện giao diện người dùng ô tô .
  • packages/apps/Car/libs/car_app_common . Màu sắc và kiểu dáng phổ biến được chia sẻ giữa các ứng dụng hệ thống Ô tô. OEM có thể sử dụng lớp phủ để tùy chỉnh các thành phần này (tương tự như car_product/overlay được mô tả ở trên).
  • packages/apps/Car/libs/car_media_common . Chứa các phần tử được chia sẻ giữa Media và các UI media khác. Ví dụ: tiện ích Media của Màn hình chính.
  • packages/apps/Car/Media. Tất cả các ứng dụng hệ thống đều sử dụng chủ đề riêng, mở rộng từ Theme.CarUi , như được định nghĩa trong car-ui-lib .

Android Automotive AOSP cung cấp hai bản trình bày về phương tiện truyền thông.

  • Giao diện người dùng truyền thông. Cho phép người dùng đăng nhập, duyệt nội dung và sử dụng các điều khiển phát lại chi tiết.
  • Tiện ích phương tiện trên màn hình chính. Cho phép sử dụng các tính năng điều khiển phát lại phương tiện cốt lõi cho Màn hình chính.

Giao diện người dùng phương tiện

Hình này mô tả cấu trúc của Media UI:

Giao diện người dùng phương tiện

Hình 1. Giao diện người dùng phương tiện.

Để biết chi tiết về các nguyên tắc UX và UI cũng như cấu trúc không gian của các thành phần khác nhau của Phương tiện, hãy xem Mô hình không gian .

AppBarView: Thanh công cụ

Thanh công cụ Media UI là một thành phần được chia sẻ với các ứng dụng hệ thống khác, chẳng hạn như Trình quay số và Radio. Để tìm hiểu cách tùy chỉnh thanh công cụ, hãy xem Hướng dẫn tích hợp thư viện giao diện người dùng ô tô .

Kích thước tác phẩm nghệ thuật tối đa của phương tiện

Để thông báo cho các ứng dụng đa phương tiện về kích thước tối đa của tác phẩm nghệ thuật cần tìm nạp, bạn có thể phủ media_items_bitmap_max_size_px trong hệ thống của mình. Để làm như vậy, hãy gửi EXTRA_MEDIA_ART_SIZE_HINT_PIXELS làm gợi ý gốc. Nhờ đó, bạn sẽ tiết kiệm được băng thông khi tải hình ảnh. Để tìm hiểu thêm, hãy xem MediaConstants trên dev.android.com.

Duyệt đoạn

Duyệt chủ yếu bao gồm Car UI RecyclerView , xử lý vị trí thanh cuộn, mũi tên và lề, đồng thời có thể duyệt các mục thuộc nhiều loại khác nhau, chẳng hạn như tiêu đề, mục lưới, mục lưới biểu tượng, mục danh sách và mục danh sách biểu tượng.

Điều khiển phát lại được thu nhỏ

Khi đoạn duyệt đang được hiển thị và khi mục phương tiện được chọn, chế độ xem điều khiển phát lại thu nhỏ sẽ được hiển thị. Hình dưới đây minh họa cấu trúc của khung nhìn này:

Điều khiển phát lại được thu nhỏ

Hình 2. Điều khiển phát lại được thu nhỏ.

Duyệt danh sách

Nhà phát triển có thể sử dụng một bộ gợi ý kiểu (xem Áp dụng kiểu nội dung ) để tùy chỉnh cách trình bày nội dung duyệt phương tiện. Các OEM phải tuân thủ các phong cách này, điều chỉnh cách trình bày cho phù hợp với hệ thống thiết kế của họ.

Các loại mục được hỗ trợ và bố cục tương ứng được đặt như sau:

  • LIST_ITEM ( media_browse_list_item.xml ). Thường được sử dụng cho các tập trong podcast, chẳng hạn như các mục trong danh sách phát và mục yêu thích.
  • ICON_LIST_ITEM ( media_browse_list_icons_item.xml ). Được sử dụng cho các danh mục hoặc tùy chọn menu, trong đó hình ảnh đi kèm với mục phương tiện không phải là ảnh bìa album thực tế mà là một biểu tượng.
  • GRID_ITEM ( media_browse_grid_item.xml ). Thường được sử dụng cho các mục có thể phát được, như bài hát hoặc danh sách phát.
  • ICON_GRID_ITEM ( media_browse_grid_icons_item.xml ). Được sử dụng cho các danh mục, tương tự như ICON_LIST_ITEM .
  • HEADER ( media_browse_header_item.xml ). Được sử dụng để sắp xếp các mục media thành các phần.

Màn hình phát lại

Để hiển thị màn hình này, hãy mở rộng các điều khiển phát lại được thu nhỏ:

  • Hiện đang phát medata mục phương tiện (bao gồm tiêu đề và phụ đề).
  • Hoàn thành điều khiển phát lại.
  • Hàng đợi phát lại (được sử dụng để hiển thị các mục đã phát gần đây hoặc các mục tiếp theo sẽ phát).

Các thành phần của màn hình Phát lại được xác định trong hình bên dưới.

Màn hình phát lại

Hình 3. Màn hình phát lại.

Màn hình Phát lại không chia sẻ thanh công cụ với phần còn lại của ứng dụng. Thay vào đó, màn hình này quản lý riêng các phần tử phía trên màn hình.

Thuộc tính định dạng âm thanh

Khi ứng dụng đặt KEY_CONTENT_FORMAT_TINTABLE_LARGE_ICON_URI hoặc KEY_CONTENT_FORMAT_TINTABLE_SMALL_ICON_URI trong phần bổ sung của mục phương tiện hiện đang phát. OEM phải hiển thị vectơ có thể vẽ thích hợp như được chỉ định bởi URI.

Phiên bản lớn của biểu tượng Định dạng Nội dung phải được sử dụng trên chế độ xem phát lại chính. Trên các chế độ xem phụ, chẳng hạn như thanh phát lại nhỏ hơn, OEM có thể sử dụng phiên bản nhỏ hơn của biểu tượng Định dạng Nội dung . ContentFormatView hiển thị biểu tượng tối ưu dựa trên thuộc tính logoSize của nó.

Khi ứng dụng được đặt KEY_SUBTITLE_LINK_MEDIA_ID hoặc KEY_DESCRIPTION_LINK_MEDIA_ID , OEM phải hiển thị phụ đề hoặc mô tả theo cách gợi ý rằng chúng có thể được nhấn vào, sau đó mở chế độ xem Duyệt qua để hiển thị mục phương tiện được liên kết khi người dùng nhấn vào.

Điều khiển phát lại

Màn hình Phát lại bao gồm một bộ điều khiển phát lại mở rộng, được sắp xếp thành các hàng điều khiển . Hàng phụ (được hiển thị bên dưới là hàng trên cùng) chỉ được hiển thị nếu khoảng trống trên hàng đầu tiên không đủ để hiển thị tất cả các hành động được ứng dụng đa phương tiện trả về từ PlaybackStateCompat#getActions() .

Điều khiển phát lại

Hình 4. Điều khiển phát lại.

OEM có thể tùy chỉnh các biểu tượng của hành động tiêu chuẩn nhưng họ phải hiển thị các biểu tượng hành động tùy chỉnh do ứng dụng đa phương tiện cung cấp.

Tiện ích phương tiện trên màn hình chính

Tiện ích này được triển khai dưới dạng một đoạn trong car-media-common . Đoạn này bao gồm một phiên bản thu nhỏ của màn hình Phát lại được mô tả ở trên. Tất cả các quy tắc và khả năng tùy chỉnh tương tự đều được áp dụng.

Tiện ích phương tiện trên màn hình chính

Hình 5. Tiện ích media trên màn hình chính.

Nút Bộ chọn ứng dụng được hiển thị ở trên sử dụng chức năng chuyển đổi được mô tả trong Luồng người dùng chuyển đổi nguồn phương tiện .

Để sử dụng biểu tượng Nguồn phương tiện hiện tại cho nút Bộ chọn ứng dụng, hãy phủ cờ use_media_source_logo_for_app_selector được xác định trong platform/packages/apps/Car/libs/car-media-common/res/values/bools.xml và đặt thành true . Với thay đổi này, biểu tượng Nguồn phương tiện ở phía đối diện thanh công cụ ứng dụng sẽ bị ẩn. Tùy chỉnh này cũng áp dụng cho ứng dụng Media Center và ứng dụng Radio tham chiếu.

Nút chọn ứng dụng đa phương tiện

Hình 6. Nút chọn ứng dụng đa phương tiện.

Bố cục nút Phát, Tạm dừng và Dừng

Bố cục nút Phát/Tạm dừng/Dừng có thể được tùy chỉnh cho "Đang phát" và chế độ xem điều khiển phát lại được thu nhỏ. Cả hai bố cục đều được xác định trong packages/apps/Car/libs/car-media-common/res/layout/ .

Để tùy chỉnh bố cục nút, hãy áp dụng lớp phủ thời gian xây dựng cho play_pause_stop_button_layout.xmlminimized_play_pause_stop_button_layout.xml .

Đánh dấu mục hiện tại trong hàng đợi phát

Trạng thái của mục hàng đợi phát hiện tại được đặt thành selected , do đó, nó có thể được tùy chỉnh bằng cách sử dụng các tài nguyên trạng thái như danh sách trạng thái màu (xem Tài nguyên danh sách trạng thái màu ) và các đối tượng có thể vẽ danh sách trạng thái (xem Tài nguyên có thể vẽ ). Để áp dụng các thay đổi kiểu dáng cần thiết, bạn có thể ghi đè bố cục mục hàng đợi packages/apps/Car/Media/res/layout/queue_list_item.xml hoặc một tệp riêng biệt

Bạn cũng có thể hiển thị biểu tượng bên cạnh mục hàng đợi phát hiện tại:

  • Xếp chồng cờ Boolean show_icon_for_now_playing_queue_list_item được xác định trong packages/apps/Car/Media/res/layout/queue_list_item.xml hoặc một cờ riêng biệt

    Để ẩn bộ hẹn giờ phát, hãy đặt show_time_for_now_playing_queue_list_item thành false .

  • Sử dụng trạng thái có thể vẽ được, ví dụ: nền trước hoặc nền của chế độ xem gốc của mục (xem packages/apps/Car/Media/res/layout/queue_list_item.xml hoặc chế độ xem riêng trong phân cấp chế độ xem của mục.

Hình 7. Mục hiện tại được đánh dấu trong hàng đợi phát.