Google 致力于为黑人社区推动种族平等。查看具体举措

自定义媒体

媒体是系统应用套件(包括拨号器和应用启动器)的一部分。这些应用共享在 AOSP 结构的不同级别定义的通用样式和资源。

  • framework/base. - 此处定义了所有 Android 基本样式。

  • packages/services/Car/car_product/overlay. - 包含构建时叠加层,用于修改标准框架/基本资源,以便为 Android Automotive OS 生成 AOSP 式的外观和风格。原始设备制造商 (OEM) 可以选择排除此叠加层并使用自己的叠加层。

  • packages/apps/Car/libs/car-ui-lib. - 此库定义了系统应用和未捆绑应用(专用于自定义)中常见的 AAOS 组件和资源。如需了解详情,请参阅车载设备界面库集成指南

  • packages/apps/Car/libs/car_app_common - Automotive 系统应用之间共用的常见颜色和样式。OEM 可以使用叠加层自定义这些元素(类似于上述 car_product/overlay)。

  • packages/apps/Car/libs/car_media_common - 包含媒体与其他媒体界面之间共用的元素(例如主屏幕媒体微件)。

  • packages/apps/Car/Media - 所有系统应用都使用自己的扩展自 Theme.CarUi(在 car-ui-lib 中定义)的主题背景。

Android Automotive AOSP 以两种方式呈现媒体。

  • 媒体界面:允许用户登录、浏览内容和使用详细的播放控件。
  • 主屏幕媒体微件:允许在主屏幕使用核心媒体播放控件功能。

媒体界面

下图介绍了媒体界面的结构:

媒体界面

图 1. 媒体界面

如需详细了解用户体验和界面准则以及媒体中不同组件的空间结构,请参阅空间模型

AppBarView:工具栏

媒体界面工具栏是与其他系统应用(例如拨号器和电台)共用的组件。如需了解其自定义,请参阅车载设备界面库集成指南

浏览 Fragment

浏览主要包括车载设备界面 RecyclerView(处理滚动条位置、箭头和外边距)和不同类型的浏览项(例如标题、网格项、图标网格项、列表项以及图标列表项)。

最小化播放控件

显示浏览 Fragment 时,如果选择媒体项,系统会显示最小化播放控件视图。下图说明了此视图的结构:

最小化播放控件

图 2. 最小化播放控件

浏览列表

开发者可以使用一组样式提示(请参阅应用内容样式)自定义媒体浏览内容的呈现方式。OEM 必须遵循这些样式,同时相应调整向其设计系统呈现的方式。

支持的项类型和相应布局的位置如下所示:

播放屏幕

如需显示此屏幕,请展开最小化播放控件:

  • 当前播放的媒体项元数据(包括标题和副标题)。
  • 完整的播放控件。
  • 播放队列(用于显示最近播放或下次播放的项)。

下图中标注了播放屏幕的组件。

播放屏幕

图 3. 播放屏幕

播放屏幕不会与应用的其余部分共用工具栏。相反,此屏幕单独管理屏幕顶部的元素。

播放控件

播放屏幕包含一组丰富的播放控件,这些控件按控件行进行整理。仅当第一行的空间不足以显示媒体应用从 PlaybackStateCompat#getActions() 返回的所有操作时,才会显示第二行(下面显示为顶部的行)。

播放控件

图 4. 播放控件。

OEM 可以自定义标准操作的图标,但必须按照媒体应用提供的方式呈现自定义操作图标。

主屏幕媒体微件

此微件以 car-media-common 中的 Fragment 形式实现。此 Fragment 包含最小化的播放屏幕版本(如上所述)。其所有自定义规则和功能均相同。

主屏幕媒体微件

图 5. 主屏幕媒体微件

上图中显示的“应用选择器”按钮使用媒体来源切换用户流中所述的切换功能。

播放/暂停/停止按钮布局

您可以针对“正在播放”和最小化播放控件视图自定义播放/暂停/停止按钮布局。这些布局是在 packages/apps/Car/libs/car-media-common/res/layout/ 中定义的。

如需自定义按钮布局,请向 play_pause_stop_button_layout.xmlminimized_play_pause_stop_button_layout.xml 应用构建时叠加层。