提供用于管理DRM内容和确定DRM插件(代理)功能的类。 DRM API的常见用途包括:
MediaPlayer
API to play the content.Android平台提供了一个可扩展的DRM框架,可让应用程序根据与内容关联的许可证约束管理受权限保护的内容。 DRM框架支持许多DRM方案; 设备支持哪些DRM方案取决于设备制造商。
Android DRM框架在两个架构层中实现(请参见下图):
对于应用程序开发人员来说,DRM框架提供了一个抽象的,统一的API,可以简化权限保护内容的管理。 该API隐藏了DRM操作的复杂性,并允许在各种DRM方案中针对受版权保护和未受保护的内容采用一致的操作模式。 对于设备制造商,内容所有者和互联网数字媒体提供商来说,DRM框架的插件架构提供了一种为Android系统添加对特定DRM方案支持的手段。
在典型的DRM会话中,Android应用程序使用DRM框架API来实例化DrmManagerClient
。 应用程序在DRM客户端上调用各种方法来查询权限并执行其他与DRM相关的任务。 每个DrmManagerClient
实例都有自己的唯一ID,因此DRM管理器可以区分呼叫者。
虽然每个DRM插件可能需要不同的API调用序列,但应用程序的一般调用序列如下所示:
您可以通过首先使用 acquireDrmInfo()
方法来获取注册信息,然后使用 processDrmInfo()
方法来处理注册信息。
您可以通过首先使用acquireDrmInfo()
方法来获取许可证信息,然后使用processDrmInfo()
方法来处理许可证信息。 您也可以使用acquireRights()
方法。
您可以使用 getConstraints()
方法来执行此操作。
您可以使用 saveRights()
方法来执行此操作。
在权利保护内容与其许可证之间建立关联后,DRM管理器将自动处理该内容的权限管理。 具体而言,当您尝试使用MediaPlayer
API播放内容时,DRM管理员将处理所有进一步的许可检查。
要了解如何将DRM API与特定DRM插件一起使用,请参阅插件开发人员提供的文档。
DrmManagerClient.OnErrorListener | 接收有关DRM框架错误信息的回调的接口定义。 |
DrmManagerClient.OnEventListener | 接收有关DRM处理事件信息的回调的接口定义。 |
DrmManagerClient.OnInfoListener | 在注册和权限获取期间接收状态消息和警告的回调的接口定义。 |
DrmStore.ConstraintsColumns | 表示DRM约束的列的接口定义。 |
DrmConvertedStatus | 包含转换数据,转换状态和用于将标题和正文签名附加到转换数据的偏移量的实体类。 |
DrmErrorEvent | 传递给 onError() 回调的实体类。 |
DrmEvent | 基类,用于从DRM框架发送异步事件信息。 |
DrmInfo | 描述在设备和在线DRM服务器之间发送事务所需信息的实体类。 |
DrmInfoEvent | 传递给 onInfo() 回调的实体类。 |
DrmInfoRequest | 用于将信息传递给在线DRM服务器的实体类。 |
DrmInfoStatus | 包装设备和在线DRM服务器之间通信结果的实体类。 |
DrmManagerClient | DRM框架的主要编程接口。 |
DrmRights | 包装从在线DRM服务器检索的许可证信息的实体类。 |
DrmStore | 定义DRM框架使用的常量。 |
DrmStore.Action | 定义可以在受权限保护的内容上执行的操作。 |
DrmStore.DrmObjectType | 定义DRM对象类型。 |
DrmStore.Playback | 定义内容的播放状态。 |
DrmStore.RightsStatus | 定义数字版权的状态通知。 |
DrmSupportInfo | 包装每个DRM插件(代理)功能的实体类,例如DRM插件的MIME类型和文件后缀可以处理。 |
DrmUtils | 提供用于解析嵌入DRM约束信息中的扩展元数据的操作的实用程序类。 |
DrmUtils.ExtendedMetadataParser | 分析嵌入在DRM约束信息中的扩展元数据的实用工具。 |
ProcessedData | 包装设备和DRM服务器之间 processDrmInfo() 交易结果的实体类。 |