为 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 版阶段,您可以通过遵循本部分中的指南为您的应用做好支持准备。

通常,所有视频应用都必须在用户体验限制处于活动状态时暂停播放,如满足驾驶员注意力分散要求中所述。

但是,某些车辆能够在用户体验限制处于活动状态时显示针对驾驶优化的播放控件,从而可以继续播放音频。

Driving optimized playback controls for an app that supports audio while driving.
图 1:支持驾驶时播放音频的应用的驾驶优化播放控件。

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

要表明您的应用支持驾驶时播放音频,请在清单中添加以下 <uses-feature> 元素

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

支持后台播放

由于您的应用活动受系统用户体验限制而隐藏,因此您的应用必须支持后台播放才能在驾驶时继续播放音频。有关如何使用 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。