构建 Android Automotive OS 视频应用

除了为 Android Automotive OS 构建停车状态下使用的应用中所述的准则外,您还需要遵循一些针对视频应用的要求。

将应用标记为视频应用

为了指明您的应用支持视频,请将名为 automotive_app_desc.xml 的 XML 文件添加到项目的 res/xml/ 目录中。 在此文件中,请包含以下内容:

<automotiveApp>
  <uses name="video"/>
</automotiveApp>

然后,在清单的 <application> 元素中,添加以下引用此 XML 文件的 <meta-data> 元素:

<meta-data
  android:name="com.android.automotive"
  android:resource="@xml/automotive_app_desc"/>

支持在驾车时使用音频

驾车时听音乐是一项 Beta 版功能
只有抢先体验合作伙伴才能发布支持在车辆行驶时播放音频的应用。此功能目前处于 Beta 版阶段,您可以按照本部分中的指南准备好应用,以便获得支持。

一般来说,当用户体验限制生效时,所有视频应用都必须暂停播放,如确保没有任何针对分心情况进行优化的 activity 中所述。

不过,在用户体验限制生效期间,某些车辆能够显示针对驾车优化的播放控件,以便继续播放音频。

为支持在驾车时播放音频的应用优化了播放控制功能。
图 1:针对支持在驾车时播放音频的应用优化的驾车播放控制功能。

声明您的应用支持在驾车时播放音频

如需指明您的应用支持在驾车时播放音频,请在清单中添加以下 <uses-feature> 元素:

<application ...>
    ...
    <uses-feature android:name="com.android.car.background_audio_while_driving" android:required="false">
    ....
</application>

支持后台播放

由于系统用户体验限制会隐藏应用的 activity,因此您的应用必须支持后台播放,才能在驾车时继续播放音频。如需详细了解如何使用 Media3 库实现此目的,请参阅使用 MediaSessionService 在后台播放

您的应用必须发布包含应用 MediaSessionMediaStyle 通知。如果您使用的是 MediaSessionService,则系统会默认为您处理此操作

确定支持情况

如需确定设备是否支持在驾车时播放音频,您可以使用 androidx.car.app:app 库中的 CarFeatures 类。

CarFeatures.isFeatureEnabled(context, CarFeatures.FEATURE_BACKGROUND_AUDIO_WHILE_DRIVING)

根据运行应用的设备的功能,使用此信息修改应用的行为。在驾车时不支持音频的设备上,您的应用仍必须符合 DD-2 准则。

在驾车时测试音频

如需测试您的实现,您可以使用支持驾车时播放音频的模拟器映像模拟驾驶

常见问题解答

是否支持 Widevine DRM?

是,Android Automotive OS 支持 Widevine DRM L3。