• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Drm
2
3
4## 概述
5
6提供数字版权保护能力的API。
7
8**起始版本:** 11
9
10
11## 汇总
12
13
14### 文件
15
16| 名称 | 描述 |
17| -------- | -------- |
18| [native_drm_common.h](native__drm__common_8h.md) | 定义DRM数据类型。<br/>**引用文件:** &lt;multimedia/drm_framework/native_drm_common.h&gt;<br/>**库:** libnative_drm.z.so |
19| [native_drm_err.h](native__drm__err_8h.md) | 定义DRM错误码。<br/>**引用文件:** &lt;multimedia/drm_framework/native_drm_err.h&gt;<br/>**库:** libnative_drm.z.so |
20| [native_mediakeysession.h](native__mediakeysession_8h.md) | 定义Drm MediaKeySession API。<br/>**引用文件:** &lt;multimedia/drm_framework/native_mediakeysession.h&gt;<br/>**库:** libnative_drm.z.so |
21| [native_mediakeysystem.h](native__mediakeysystem_8h.md) | 定义Drm MediaKeySystem API。<br/>**引用文件:** &lt;multimedia/drm_framework/native_mediakeysystem.h&gt;<br/>**库:** libnative_drm.z.so |
22
23
24### 结构体
25
26| 名称 | 描述 |
27| -------- | -------- |
28| struct&nbsp;&nbsp;[DRM_MediaKeyRequestInfo](_d_r_m___media_key_request_info.md) | 媒体密钥请求信息。 |
29| struct&nbsp;&nbsp;[DRM_MediaKeyRequest](_d_r_m___media_key_request.md) | 媒体密钥请求。 |
30| struct&nbsp;&nbsp;[DRM_Statistics](_d_r_m___statistics.md) | MediaKeySystem的度量信息。 |
31| struct&nbsp;&nbsp;[DRM_OfflineMediakeyIdArray](_d_r_m___offline_mediakey_id_array.md) | 离线媒体密钥ID数组。 |
32| struct&nbsp;&nbsp;[DRM_KeysInfo](_d_r_m___keys_info.md) | 媒体密钥信息。 |
33| struct&nbsp;&nbsp;[DRM_MediaKeyStatus](_d_r_m___media_key_status.md) | 媒体密钥状态。 |
34| struct&nbsp;&nbsp;[DRM_PsshInfo](_d_r_m___pssh_info.md) | uuid的PSSH信息。 |
35| struct&nbsp;&nbsp;[DRM_MediaKeySystemInfo](_d_r_m___media_key_system_info.md) | 用于播放器从媒体源获取媒体密钥系统信息。 |
36| struct&nbsp;&nbsp;[MediaKeySession_Callback](_media_key_session___callback.md) | MediaKeySession_Callback结构体,用于监听密钥过期、密钥更改等事件。 |
37
38
39### 宏定义
40
41| 名称 | 描述 |
42| -------- | -------- |
43| [MAX_MEDIA_KEY_REQUEST_OPTION_COUNT](#max_media_key_request_option_count)&nbsp;&nbsp;&nbsp;16 | 媒体密钥请求选项的最大计数。 |
44| [MAX_MEDIA_KEY_REQUEST_OPTION_NAME_LEN](#max_media_key_request_option_name_len)&nbsp;&nbsp;&nbsp;64 | 媒体密钥请求选项名称的最大长度。 |
45| [MAX_MEDIA_KEY_REQUEST_OPTION_DATA_LEN](#max_media_key_request_option_data_len)&nbsp;&nbsp;&nbsp;128 | 媒体密钥请求选项数据的最大长度。 |
46| [MAX_INIT_DATA_LEN](#max_init_data_len)&nbsp;&nbsp;&nbsp;2048 | 媒体密钥请求初始化数据的最大长度。 |
47| [MAX_MIMETYPE_LEN](#max_mimetype_len)&nbsp;&nbsp;&nbsp;64 | 媒体mimetype类型的最大长度。 |
48| [MAX_MEDIA_KEY_REQUEST_DATA_LEN](#max_media_key_request_data_len)&nbsp;&nbsp;&nbsp;8192 | 媒体密钥请求的最大长度。 |
49| [MAX_DEFAULT_URL_LEN](#max_default_url_len)&nbsp;&nbsp;&nbsp;2048 | URL最大长度。 |
50| [MAX_STATISTICS_COUNT](#max_statistics_count)&nbsp;&nbsp;&nbsp;10 | 统计项的最大计数。 |
51| [MAX_STATISTICS_NAME_LEN](#max_statistics_name_len)&nbsp;&nbsp;&nbsp;64 | 统计项名称的最大长度。 |
52| [MAX_STATISTICS_BUFFER_LEN](#max_statistics_buffer_len)&nbsp;&nbsp;&nbsp;256 | 统计项缓冲区的最大长度。 |
53| [MAX_OFFLINE_MEDIA_KEY_ID_COUNT](#max_offline_media_key_id_count)&nbsp;&nbsp;&nbsp;512 | 离线媒体密钥id的最大计数。 |
54| [MAX_OFFLINE_MEDIA_KEY_ID_LEN](#max_offline_media_key_id_len)&nbsp;&nbsp;&nbsp;64 | 离线媒体密钥id的最大长度。 |
55| [MAX_KEY_INFO_COUNT](#max_key_info_count)&nbsp;&nbsp;&nbsp;64 | 密钥信息的最大计数。 |
56| [MAX_KEY_ID_LEN](#max_key_id_len)&nbsp;&nbsp;&nbsp;16 | 密钥id的最大长度。 |
57| [MAX_KEY_STATUS_VALUE_LEN](#max_key_status_value_len)&nbsp;&nbsp;&nbsp;128 | 密钥状态值的最大长度。 |
58| [MAX_MEDIA_KEY_STATUS_COUNT](#max_media_key_status_count)&nbsp;&nbsp;&nbsp;64 | 媒体密钥状态的最大计数。 |
59| [MAX_MEDIA_KEY_STATUS_NAME_LEN](#max_media_key_status_name_len)&nbsp;&nbsp;&nbsp;64 | 媒体密钥状态名称的最大长度。 |
60| [MAX_MEDIA_KEY_STATUS_VALUE_LEN](#max_media_key_status_value_len)&nbsp;&nbsp;&nbsp;256 | 媒体密钥状态值的最大长度。 |
61| [DRM_UUID_LEN](#drm_uuid_len)&nbsp;&nbsp;&nbsp;16 | Drm系统 uuid长度。 |
62| [MAX_PSSH_DATA_LEN](#max_pssh_data_len)&nbsp;&nbsp;&nbsp;2048 | PSSH数据的最大长度。 |
63| [MAX_PSSH_INFO_COUNT](#max_pssh_info_count)&nbsp;&nbsp;&nbsp;8 | PSSH信息的最大计数。 |
64
65
66### 类型定义
67
68| 名称 | 描述 |
69| -------- | -------- |
70| typedef enum [DRM_EventType](#drm_eventtype-1) [DRM_EventType](#drm_eventtype) | 监听事件类型。 |
71| typedef enum [DRM_ContentProtectionLevel](#drm_contentprotectionlevel-1) [DRM_ContentProtectionLevel](#drm_contentprotectionlevel) | 内容保护级别类型。 |
72| typedef enum [DRM_MediaKeyType](#drm_mediakeytype-1) [DRM_MediaKeyType](#drm_mediakeytype) | 许可证类型。 |
73| typedef enum [DRM_MediaKeyRequestType](#drm_mediakeyrequesttype-1) [DRM_MediaKeyRequestType](#drm_mediakeyrequesttype) | 许可证请求类型。 |
74| typedef enum [DRM_OfflineMediaKeyStatus](#drm_offlinemediakeystatus-1) [DRM_OfflineMediaKeyStatus](#drm_offlinemediakeystatus) | 离线许可证状态。 |
75| typedef enum [DRM_CertificateStatus](#drm_certificatestatus-1) [DRM_CertificateStatus](#drm_certificatestatus) | 设备证书状态类型。 |
76| typedef struct [DRM_MediaKeyRequestInfo](_d_r_m___media_key_request_info.md) [DRM_MediaKeyRequestInfo](#drm_mediakeyrequestinfo) | 媒体密钥请求信息。 |
77| typedef struct [DRM_MediaKeyRequest](_d_r_m___media_key_request.md) [DRM_MediaKeyRequest](#drm_mediakeyrequest) | 媒体密钥请求。 |
78| typedef struct [DRM_Statistics](_d_r_m___statistics.md) [DRM_Statistics](#drm_statistics) | MediaKeySystem的度量信息。 |
79| typedef struct [DRM_OfflineMediakeyIdArray](_d_r_m___offline_mediakey_id_array.md) [DRM_OfflineMediakeyIdArray](#drm_offlinemediakeyidarray) | 离线媒体密钥ID数组。 |
80| typedef struct [DRM_KeysInfo](_d_r_m___keys_info.md) [DRM_KeysInfo](#drm_keysinfo) | 媒体密钥信息。 |
81| typedef struct [DRM_MediaKeyStatus](_d_r_m___media_key_status.md) [DRM_MediaKeyStatus](#drm_mediakeystatus) | 媒体密钥状态。 |
82| typedef struct [DRM_PsshInfo](_d_r_m___pssh_info.md) [DRM_PsshInfo](#drm_psshinfo) | uuid的PSSH信息。 |
83| typedef struct [DRM_MediaKeySystemInfo](_d_r_m___media_key_system_info.md) [DRM_MediaKeySystemInfo](#drm_mediakeysysteminfo) | 用于播放器从媒体源获取媒体密钥系统信息。 |
84| typedef void(\* [DRM_MediaKeySystemInfoCallback](#drm_mediakeysysteminfocallback)) ([DRM_MediaKeySystemInfo](_d_r_m___media_key_system_info.md) \*mediaKeySystemInfo) | 应用程序为从媒体源获取媒体密钥系统信息而设置的回调。 |
85| typedef struct [MediaKeySystem](#mediakeysystem) [MediaKeySystem](#mediakeysystem) | 媒体密钥系统结构。 |
86| typedef struct [MediaKeySession](#mediakeysession) [MediaKeySession](#mediakeysession) | 媒体密钥会话结构。 |
87| typedef enum [Drm_ErrCode](#drm_errcode-1) [Drm_ErrCode](#drm_errcode) | DRM错误码。 |
88| typedef [Drm_ErrCode](#drm_errcode)(\* [MediaKeySession_EventCallback](#mediakeysession_eventcallback)) ([DRM_EventType](#drm_eventtype) eventType, uint8_t \*info, int32_t infoLen, char \*extra) | 事件触发时将调用的回调。 |
89| typedef [Drm_ErrCode](#drm_errcode)(\* [MediaKeySession_KeyChangeCallback](#mediakeysession_keychangecallback)) ([DRM_KeysInfo](_d_r_m___keys_info.md) \*keysInfo, bool newKeysAvailable) | 密钥更改时将调用回调。 |
90| typedef struct [MediaKeySession_Callback](_media_key_session___callback.md) [MediaKeySession_Callback](#mediakeysession_callback) | MediaKeySession_Callback结构体,用于监听密钥过期、密钥更改等事件。 |
91| typedef [Drm_ErrCode](#drm_errcode)(\* [MediaKeySystem_Callback](#mediakeysystem_callback)) ([DRM_EventType](#drm_eventtype) eventType, uint8_t \*info, int32_t infoLen, char \*extra) | 事件触发时将调用的回调。 |
92
93
94### 枚举
95
96| 名称 | 描述 |
97| -------- | -------- |
98| [DRM_EventType](#drm_eventtype-1) {<br/>EVENT_DRM_BASE = 200, <br/>EVENT_PROVISION_REQUIRED = 201, <br/>EVENT_KEY_REQUIRED = 202, <br/>EVENT_KEY_EXPIRED = 203,<br/>EVENT_VENDOR_DEFINED = 204, <br/>EVENT_EXPIRATION_UPDATE = 206<br/>} | 监听事件类型。 |
99| [DRM_ContentProtectionLevel](#drm_contentprotectionlevel-1) {<br/>CONTENT_PROTECTION_LEVEL_UNKNOWN = 0, <br/>CONTENT_PROTECTION_LEVEL_SW_CRYPTO, <br/>CONTENT_PROTECTION_LEVEL_HW_CRYPTO, <br/>CONTENT_PROTECTION_LEVEL_ENHANCED_HW_CRYPTO,<br/>CONTENT_PROTECTION_LEVEL_MAX<br/>} | 内容保护级别类型。 |
100| [DRM_MediaKeyType](#drm_mediakeytype-1) { <br/>MEDIA_KEY_TYPE_OFFLINE = 0, <br/>MEDIA_KEY_TYPE_ONLINE <br/>} | 许可证类型。 |
101| [DRM_MediaKeyRequestType](#drm_mediakeyrequesttype-1) {<br/>MEDIA_KEY_REQUEST_TYPE_UNKNOWN = 0, <br/>MEDIA_KEY_REQUEST_TYPE_INITIAL, <br/>MEDIA_KEY_REQUEST_TYPE_RENEWAL, <br/>MEDIA_KEY_REQUEST_TYPE_RELEASE,<br/>MEDIA_KEY_REQUEST_TYPE_NONE, <br/>MEDIA_KEY_REQUEST_TYPE_UPDATE<br/>} | 许可证请求类型。 |
102| [DRM_OfflineMediaKeyStatus](#drm_offlinemediakeystatus-1) { <br/>OFFLINE_MEDIA_KEY_STATUS_UNKNOWN = 0, <br/>OFFLINE_MEDIA_KEY_STATUS_USABLE, <br/>OFFLINE_MEDIA_KEY_STATUS_INACTIVE } | 离线许可证状态。 |
103| [DRM_CertificateStatus](#drm_certificatestatus-1) {<br/>CERT_STATUS_PROVISIONED = 0, <br/>CERT_STATUS_NOT_PROVISIONED, <br/>CERT_STATUS_EXPIRED, <br/>CERT_STATUS_INVALID,<br/>CERT_STATUS_UNAVAILABLE<br/>} | 设备证书状态类型。 |
104| [Drm_ErrCode](#drm_errcode-1) {<br/>DRM_ERR_OK = 0, <br/>DRM_CAPI_ERR_BASE = 24700500, <br/>DRM_ERR_NO_MEMORY = DRM_CAPI_ERR_BASE + 1, <br/>DRM_ERR_OPERATION_NOT_PERMITTED = DRM_CAPI_ERR_BASE + 2,<br/>DRM_ERR_INVALID_VAL = DRM_CAPI_ERR_BASE + 3, <br/>DRM_ERR_IO = DRM_CAPI_ERR_BASE + 4, <br/>DRM_ERR_TIMEOUT = DRM_CAPI_ERR_BASE + 5, <br/>DRM_ERR_UNKNOWN = DRM_CAPI_ERR_BASE + 6,<br/>DRM_ERR_SERVICE_DIED = DRM_CAPI_ERR_BASE + 7, <br/>DRM_ERR_INVALID_STATE = DRM_CAPI_ERR_BASE + 8, <br/>DRM_ERR_UNSUPPORTED = DRM_CAPI_ERR_BASE + 9, <br/>DRM_ERR_MAX_SYSTEM_NUM_REACHED = DRM_CAPI_ERR_BASE + 10,<br/>DRM_ERR_MAX_SESSION_NUM_REACHED = DRM_CAPI_ERR_BASE + 11, <br/>DRM_ERR_EXTEND_START = DRM_CAPI_ERR_BASE + 100<br/>} | DRM错误码。 |
105
106
107### 函数
108
109| 名称 | 描述 |
110| -------- | -------- |
111| [Drm_ErrCode](#drm_errcode) [OH_MediaKeySession_GenerateMediaKeyRequest](#oh_mediakeysession_generatemediakeyrequest) ([MediaKeySession](#mediakeysession) \*mediaKeySession, [DRM_MediaKeyRequestInfo](_d_r_m___media_key_request_info.md) \*info, [DRM_MediaKeyRequest](_d_r_m___media_key_request.md) \*mediaKeyRequest) | 生成媒体密钥请求。 |
112| [Drm_ErrCode](#drm_errcode) [OH_MediaKeySession_ProcessMediaKeyResponse](#oh_mediakeysession_processmediakeyresponse) ([MediaKeySession](#mediakeysession) \*mediaKeySession, uint8_t \*response, int32_t responseLen, uint8_t \*offlineMediaKeyId, int32_t \*offlineMediaKeyIdLen) | 处理媒体密钥响应。 |
113| [Drm_ErrCode](#drm_errcode) [OH_MediaKeySession_CheckMediaKeyStatus](#oh_mediakeysession_checkmediakeystatus) ([MediaKeySession](#mediakeysession) \*mediaKeySessoin, [DRM_MediaKeyStatus](_d_r_m___media_key_status.md) \*mediaKeyStatus) | 检查媒体密钥状态。 |
114| [Drm_ErrCode](#drm_errcode) [OH_MediaKeySession_ClearMediaKeys](#oh_mediakeysession_clearmediakeys) ([MediaKeySession](#mediakeysession) \*mediaKeySessoin) | 清除当前会话的媒体密钥。 |
115| [Drm_ErrCode](#drm_errcode) [OH_MediaKeySession_GenerateOfflineReleaseRequest](#oh_mediakeysession_generateofflinereleaserequest) ([MediaKeySession](#mediakeysession) \*mediaKeySessoin, uint8_t \*offlineMediaKeyId, int32_t offlineMediaKeyIdLen, uint8_t \*releaseRequest, int32_t \*releaseRequestLen) | 生成离线媒体密钥释放请求。 |
116| [Drm_ErrCode](#drm_errcode) [OH_MediaKeySession_ProcessOfflineReleaseResponse](#oh_mediakeysession_processofflinereleaseresponse) ([MediaKeySession](#mediakeysession) \*mediaKeySessoin, uint8_t \*offlineMediaKeyId, int32_t offlineMediaKeyIdLen, uint8_t \*releaseReponse, int32_t releaseReponseLen) | 处理离线媒体密钥释放响应。 |
117| [Drm_ErrCode](#drm_errcode) [OH_MediaKeySession_RestoreOfflineMediaKeys](#oh_mediakeysession_restoreofflinemediakeys) ([MediaKeySession](#mediakeysession) \*mediaKeySessoin, uint8_t \*offlineMediaKeyId, int32_t offlineMediaKeyIdLen) | 按ID还原离线媒体密钥。 |
118| [Drm_ErrCode](#drm_errcode) [OH_MediaKeySession_GetContentProtectionLevel](#oh_mediakeysession_getcontentprotectionlevel) ([MediaKeySession](#mediakeysession) \*mediaKeySessoin, [DRM_ContentProtectionLevel](#drm_contentprotectionlevel) \*contentProtectionLevel) | 获取会话的内容保护级别。 |
119| [Drm_ErrCode](#drm_errcode) [OH_MediaKeySession_RequireSecureDecoderModule](#oh_mediakeysession_requiresecuredecodermodule) ([MediaKeySession](#mediakeysession) \*mediaKeySessoin, const char \*mimeType, bool \*status) | 加密内容是否需要安全解码。 |
120| [Drm_ErrCode](#drm_errcode) [OH_MediaKeySession_SetMediaKeySessionCallback](#oh_mediakeysession_setmediakeysessioncallback) ([MediaKeySession](#mediakeysession) \*mediaKeySessoin, [MediaKeySession_Callback](_media_key_session___callback.md) \*callback) | 设置媒体密钥会话事件回调。 |
121| [Drm_ErrCode](#drm_errcode) [OH_MediaKeySession_Destroy](#oh_mediakeysession_destroy) ([MediaKeySession](#mediakeysession) \*mediaKeySessoin) | 释放会话资源。 |
122| bool [OH_MediaKeySystem_IsSupported](#oh_mediakeysystem_issupported) (const char \*name) | 查询是否支持媒体密钥系统。 |
123| bool [OH_MediaKeySystem_IsSupported2](#oh_mediakeysystem_issupported2) (const char \*name, const char \*mimeType) | 查询是否支持媒体密钥系统。 |
124| bool [OH_MediaKeySystem_IsSupported3](#oh_mediakeysystem_issupported3) (const char \*name, const char \*mimeType, [DRM_ContentProtectionLevel](#drm_contentprotectionlevel) contentProtectionLevel) | 查询是否支持媒体密钥系统。 |
125| [Drm_ErrCode](#drm_errcode) [OH_MediaKeySystem_Create](#oh_mediakeysystem_create) (const char \*name, [MediaKeySystem](#mediakeysystem) \*\*mediaKeySystem) | 根据名称创建媒体密钥系统实例。 |
126| [Drm_ErrCode](#drm_errcode) [OH_MediaKeySystem_SetConfigurationString](#oh_mediakeysystem_setconfigurationstring) ([MediaKeySystem](#mediakeysystem) \*mediaKeySystem, const char \*configName, const char \*value) | 按字符串类型名称设置媒体密钥系统配置值。 |
127| [Drm_ErrCode](#drm_errcode) [OH_MediaKeySystem_GetConfigurationString](#oh_mediakeysystem_getconfigurationstring) ([MediaKeySystem](#mediakeysystem) \*mediaKeySystem, const char \*configName, char \*value, int32_t valueLen) | 按字符串类型名称获取媒体密钥系统配置值。 |
128| [Drm_ErrCode](#drm_errcode) [OH_MediaKeySystem_SetConfigurationByteArray](#oh_mediakeysystem_setconfigurationbytearray) ([MediaKeySystem](#mediakeysystem) \*mediaKeySystem, const char \*configName, uint8_t \*value, int32_t valueLen) | 通过字符数组类型配置名设置MediaKeySystem的配置值。 |
129| [Drm_ErrCode](#drm_errcode) [OH_MediaKeySystem_GetConfigurationByteArray](#oh_mediakeysystem_getconfigurationbytearray) ([MediaKeySystem](#mediakeysystem) \*mediaKeySystem, const char \*configName, uint8_t \*value, int32_t \*valueLen) | 按字符数组类型名称获取媒体密钥系统配置值。 |
130| [Drm_ErrCode](#drm_errcode) [OH_MediaKeySystem_GetStatistics](#oh_mediakeysystem_getstatistics) ([MediaKeySystem](#mediakeysystem) \*mediaKeySystem, [DRM_Statistics](_d_r_m___statistics.md) \*statistics) | 获取媒体密钥系统度量信息。 |
131| [Drm_ErrCode](#drm_errcode) [OH_MediaKeySystem_GetMaxContentProtectionLevel](#oh_mediakeysystem_getmaxcontentprotectionlevel) ([MediaKeySystem](#mediakeysystem) \*mediaKeySystem, [DRM_ContentProtectionLevel](#drm_contentprotectionlevel) \*contentProtectionLevel) | 获取支持的最高内容保护级别的媒体密钥系统。 |
132| [Drm_ErrCode](#drm_errcode) [OH_MediaKeySystem_SetMediaKeySystemCallback](#oh_mediakeysystem_setmediakeysystemcallback) ([MediaKeySystem](#mediakeysystem) \*mediaKeySystem, [MediaKeySystem_Callback](#mediakeysystem_callback) callback) | 设置媒体密钥系统事件回调。 |
133| [Drm_ErrCode](#drm_errcode) [OH_MediaKeySystem_CreateMediaKeySession](#oh_mediakeysystem_createmediakeysession) ([MediaKeySystem](#mediakeysystem) \*mediaKeySystem, [DRM_ContentProtectionLevel](#drm_contentprotectionlevel) \*level, [MediaKeySession](#mediakeysession) \*\*mediaKeySession) | 创建媒体密钥会话实例。 |
134| [Drm_ErrCode](#drm_errcode) [OH_MediaKeySystem_GenerateKeySystemRequest](#oh_mediakeysystem_generatekeysystemrequest) ([MediaKeySystem](#mediakeysystem) \*mediaKeySystem, uint8_t \*request, int32_t \*requestLen, char \*defaultUrl, int32_t defaultUrlLen) | 生成媒体密钥系统提供请求。 |
135| [Drm_ErrCode](#drm_errcode) [OH_MediaKeySystem_ProcessKeySystemResponse](#oh_mediakeysystem_processkeysystemresponse) ([MediaKeySystem](#mediakeysystem) \*mediaKeySystem, uint8_t \*response, int32_t responseLen) | 处理媒体密钥系统提供响应。 |
136| [Drm_ErrCode](#drm_errcode) [OH_MediaKeySystem_GetOfflineMediaKeyIds](#oh_mediakeysystem_getofflinemediakeyids) ([MediaKeySystem](#mediakeysystem) \*mediaKeySystem, [DRM_OfflineMediakeyIdArray](_d_r_m___offline_mediakey_id_array.md) \*offlineMediaKeyIds) | 获取离线媒体密钥ID。 |
137| [Drm_ErrCode](#drm_errcode) [OH_MediaKeySystem_GetOfflineMediaKeyStatus](#oh_mediakeysystem_getofflinemediakeystatus) ([MediaKeySystem](#mediakeysystem) \*mediaKeySystem, uint8_t \*offlineMediaKeyId, int32_t offlineMediaKeyIdLen, [DRM_OfflineMediaKeyStatus](#drm_offlinemediakeystatus) \*status) | 获取离线密钥状态。 |
138| [Drm_ErrCode](#drm_errcode) [OH_MediaKeySystem_ClearOfflineMediaKeys](#oh_mediakeysystem_clearofflinemediakeys) ([MediaKeySystem](#mediakeysystem) \*mediaKeySystem, uint8_t \*offlineMediaKeyId, int32_t offlineMediaKeyIdLen) | 按id清除离线媒体密钥。 |
139| [Drm_ErrCode](#drm_errcode) [OH_MediaKeySystem_GetCertificateStatus](#oh_mediakeysystem_getcertificatestatus) ([MediaKeySystem](#mediakeysystem) \*mediaKeySystem, [DRM_CertificateStatus](#drm_certificatestatus) \*certStatus) | 获取媒体密钥系统的证书状态。 |
140| [Drm_ErrCode](#drm_errcode) [OH_MediaKeySystem_Destroy](#oh_mediakeysystem_destroy) ([MediaKeySystem](#mediakeysystem) \*mediaKeySystem) | Destroy a 媒体密钥系统实例。 |
141
142
143### 变量
144
145| 名称 | 描述 |
146| -------- | -------- |
147| [DRM_MediaKeyType](#drm_mediakeytype) [DRM_MediaKeyRequestInfo::type](#type-12) | 密钥类型 |
148| int32_t [DRM_MediaKeyRequestInfo::initDataLen](#initdatalen) | 初始数据长度。 |
149| uint8_t [DRM_MediaKeyRequestInfo::initData](#initdata) [[MAX_INIT_DATA_LEN](#max_init_data_len)] | base64解码后格式为PSSH的初始数据。 |
150| char [DRM_MediaKeyRequestInfo::mimeType](#mimetype) [[MAX_MIMETYPE_LEN](#max_mimetype_len)] | 媒体上下文的mime类型。 |
151| uint32_t [DRM_MediaKeyRequestInfo::optionsCount](#optionscount) | 选项数据计数。 |
152| char [DRM_MediaKeyRequestInfo::optionName](#optionname) [[MAX_MEDIA_KEY_REQUEST_OPTION_COUNT](#max_media_key_request_option_count)][[MAX_MEDIA_KEY_REQUEST_OPTION_NAME_LEN](#max_media_key_request_option_name_len)] | 选项名称集合。 |
153| char [DRM_MediaKeyRequestInfo::optionData](#optiondata) [[MAX_MEDIA_KEY_REQUEST_OPTION_COUNT](#max_media_key_request_option_count)][[MAX_MEDIA_KEY_REQUEST_OPTION_DATA_LEN](#max_media_key_request_option_data_len)] | 选项数据集合。 |
154| [DRM_MediaKeyRequestType](#drm_mediakeyrequesttype) [DRM_MediaKeyRequest::type](#type-22) | 媒体密钥请求类型。 |
155| int32_t [DRM_MediaKeyRequest::dataLen](#datalen-12) | 媒体密钥请求数据长度。 |
156| uint8_t [DRM_MediaKeyRequest::data](#data-12) [[MAX_MEDIA_KEY_REQUEST_DATA_LEN](#max_media_key_request_data_len)] | 发送到媒体密钥服务器的媒体密钥请求数据。 |
157| char [DRM_MediaKeyRequest::defaultUrl](#defaulturl) [[MAX_DEFAULT_URL_LEN](#max_default_url_len)] | 媒体密钥服务器URL。 |
158| uint32_t [DRM_Statistics::statisticsCount](#statisticscount) | 度量计数。 |
159| char [DRM_Statistics::statisticsName](#statisticsname) [[MAX_STATISTICS_COUNT](#max_statistics_count)][[MAX_STATISTICS_NAME_LEN](#max_statistics_name_len)] | 度量信息名称集合。 |
160| char [DRM_Statistics::statisticsDescription](#statisticsdescription) [[MAX_STATISTICS_COUNT](#max_statistics_count)][[MAX_STATISTICS_BUFFER_LEN](#max_statistics_buffer_len)] | 度量信息描述集合。 |
161| uint32_t [DRM_OfflineMediakeyIdArray::idsCount](#idscount) | ID计数 |
162| int32_t [DRM_OfflineMediakeyIdArray::idsLen](#idslen) [[MAX_OFFLINE_MEDIA_KEY_ID_COUNT](#max_offline_media_key_id_count)] | ID长度集合 |
163| uint8_t [DRM_OfflineMediakeyIdArray::ids](#ids) [[MAX_OFFLINE_MEDIA_KEY_ID_COUNT](#max_offline_media_key_id_count)][[MAX_OFFLINE_MEDIA_KEY_ID_LEN](#max_offline_media_key_id_len)] | ID数据集合 |
164| uint32_t [DRM_KeysInfo::keysInfoCount](#keysinfocount) | 钥匙计数。 |
165| uint8_t [DRM_KeysInfo::keyId](#keyid) [[MAX_KEY_INFO_COUNT](#max_key_info_count)][[MAX_KEY_ID_LEN](#max_key_id_len)] | 密钥ID集合 |
166| char [DRM_KeysInfo::statusValue](#statusvalue-12) [[MAX_KEY_INFO_COUNT](#max_key_info_count)][[MAX_KEY_STATUS_VALUE_LEN](#max_key_status_value_len)] | 关键状态值。 |
167| uint32_t [DRM_MediaKeyStatus::statusCount](#statuscount) | 状态计数。 |
168| char [DRM_MediaKeyStatus::statusName](#statusname) [[MAX_MEDIA_KEY_STATUS_COUNT](#max_media_key_status_count)][[MAX_MEDIA_KEY_STATUS_NAME_LEN](#max_media_key_status_name_len)] | 状态名数组。 |
169| char [DRM_MediaKeyStatus::statusValue](#statusvalue-22) [[MAX_MEDIA_KEY_STATUS_COUNT](#max_media_key_status_count)][[MAX_MEDIA_KEY_STATUS_VALUE_LEN](#max_media_key_status_value_len)] | 状态值数组。 |
170| uint8_t [DRM_PsshInfo::uuid](#uuid) [[DRM_UUID_LEN](#drm_uuid_len)] | Uuid. |
171| int32_t [DRM_PsshInfo::dataLen](#datalen-22) | PSSH数据长度。 |
172| uint8_t [DRM_PsshInfo::data](#data-22) [[MAX_PSSH_DATA_LEN](#max_pssh_data_len)] | uint8_t PSSH数据。 |
173| uint32_t [DRM_MediaKeySystemInfo::psshCount](#psshcount) | PSSH计数。 |
174| [DRM_PsshInfo](_d_r_m___pssh_info.md) [DRM_MediaKeySystemInfo::psshInfo](#psshinfo) [[MAX_PSSH_INFO_COUNT](#max_pssh_info_count)] | PSSH信息. |
175| [MediaKeySession_EventCallback](#mediakeysession_eventcallback) [MediaKeySession_Callback::eventCallback](#eventcallback) | 正常事件回调,如密钥过期等。 |
176| [MediaKeySession_KeyChangeCallback](#mediakeysession_keychangecallback) [MediaKeySession_Callback::keyChangeCallback](#keychangecallback) | 密钥更改事件的密钥更改回调。 |
177
178
179## 宏定义说明
180
181
182### DRM_UUID_LEN
183
184```
185#define DRM_UUID_LEN   16
186```
187
188**描述**
189
190Drm系统 uuid长度。
191
192**起始版本:** 11
193
194
195### MAX_DEFAULT_URL_LEN
196
197```
198#define MAX_DEFAULT_URL_LEN   2048
199```
200
201**描述**
202
203URL最大长度。
204
205**起始版本:** 11
206
207
208### MAX_INIT_DATA_LEN
209
210```
211#define MAX_INIT_DATA_LEN   2048
212```
213
214**描述**
215
216媒体密钥请求初始化数据的最大长度。
217
218**起始版本:** 11
219
220
221### MAX_KEY_ID_LEN
222
223```
224#define MAX_KEY_ID_LEN   16
225```
226
227**描述**
228
229密钥id的最大长度。
230
231**起始版本:** 11
232
233
234### MAX_KEY_INFO_COUNT
235
236```
237#define MAX_KEY_INFO_COUNT   64
238```
239
240**描述**
241
242密钥信息的最大计数。
243
244**起始版本:** 11
245
246
247### MAX_KEY_STATUS_VALUE_LEN
248
249```
250#define MAX_KEY_STATUS_VALUE_LEN   128
251```
252
253**描述**
254
255密钥状态值的最大长度。
256
257**起始版本:** 11
258
259
260### MAX_MEDIA_KEY_REQUEST_DATA_LEN
261
262```
263#define MAX_MEDIA_KEY_REQUEST_DATA_LEN   8192
264```
265
266**描述**
267
268媒体密钥请求的最大长度。
269
270**起始版本:** 11
271
272
273### MAX_MEDIA_KEY_REQUEST_OPTION_COUNT
274
275```
276#define MAX_MEDIA_KEY_REQUEST_OPTION_COUNT   16
277```
278
279**描述**
280
281媒体密钥请求选项的最大计数。
282
283**起始版本:** 11
284
285
286### MAX_MEDIA_KEY_REQUEST_OPTION_DATA_LEN
287
288```
289#define MAX_MEDIA_KEY_REQUEST_OPTION_DATA_LEN   128
290```
291
292**描述**
293
294媒体密钥请求选项数据的最大长度。
295
296**起始版本:** 11
297
298
299### MAX_MEDIA_KEY_REQUEST_OPTION_NAME_LEN
300
301```
302#define MAX_MEDIA_KEY_REQUEST_OPTION_NAME_LEN   64
303```
304
305**描述**
306
307媒体密钥请求选项名称的最大长度。
308
309**起始版本:** 11
310
311
312### MAX_MEDIA_KEY_STATUS_COUNT
313
314```
315#define MAX_MEDIA_KEY_STATUS_COUNT   64
316```
317
318**描述**
319
320媒体密钥状态的最大计数。
321
322**起始版本:** 11
323
324
325### MAX_MEDIA_KEY_STATUS_NAME_LEN
326
327```
328#define MAX_MEDIA_KEY_STATUS_NAME_LEN   64
329```
330
331**描述**
332
333媒体密钥状态名称的最大长度。
334
335**起始版本:** 11
336
337
338### MAX_MEDIA_KEY_STATUS_VALUE_LEN
339
340```
341#define MAX_MEDIA_KEY_STATUS_VALUE_LEN   256
342```
343
344**描述**
345
346媒体密钥状态值的最大长度。
347
348**起始版本:** 11
349
350
351### MAX_MIMETYPE_LEN
352
353```
354#define MAX_MIMETYPE_LEN   64
355```
356
357**描述**
358
359媒体mimetype类型的最大长度。
360
361**起始版本:** 11
362
363
364### MAX_OFFLINE_MEDIA_KEY_ID_COUNT
365
366```
367#define MAX_OFFLINE_MEDIA_KEY_ID_COUNT   512
368```
369
370**描述**
371
372离线媒体密钥id的最大计数。
373
374**起始版本:** 11
375
376
377### MAX_OFFLINE_MEDIA_KEY_ID_LEN
378
379```
380#define MAX_OFFLINE_MEDIA_KEY_ID_LEN   64
381```
382
383**描述**
384
385离线媒体密钥id的最大长度。
386
387**起始版本:** 11
388
389
390### MAX_PSSH_DATA_LEN
391
392```
393#define MAX_PSSH_DATA_LEN   2048
394```
395
396**描述**
397
398PSSH数据的最大长度。
399
400**起始版本:** 11
401
402
403### MAX_PSSH_INFO_COUNT
404
405```
406#define MAX_PSSH_INFO_COUNT   8
407```
408
409**描述**
410
411PSSH信息的最大计数。
412
413**起始版本:** 11
414
415
416### MAX_STATISTICS_BUFFER_LEN
417
418```
419#define MAX_STATISTICS_BUFFER_LEN   256
420```
421
422**描述**
423
424统计项缓冲区的最大长度。
425
426**起始版本:** 11
427
428
429### MAX_STATISTICS_COUNT
430
431```
432#define MAX_STATISTICS_COUNT   10
433```
434
435**描述**
436
437统计项的最大计数。
438
439**起始版本:** 11
440
441
442### MAX_STATISTICS_NAME_LEN
443
444```
445#define MAX_STATISTICS_NAME_LEN   64
446```
447
448**描述**
449
450统计项名称的最大长度。
451
452**起始版本:** 11
453
454
455## 类型定义说明
456
457
458### DRM_CertificateStatus
459
460```
461typedef enum DRM_CertificateStatusDRM_CertificateStatus
462```
463
464**描述**
465
466设备证书状态类型。
467
468**系统能力:** SystemCapability.Multimedia.Drm.Core
469
470**起始版本:** 11
471
472
473### DRM_ContentProtectionLevel
474
475```
476typedef enum DRM_ContentProtectionLevelDRM_ContentProtectionLevel
477```
478
479**描述**
480
481内容保护级别类型。
482
483**系统能力:** SystemCapability.Multimedia.Drm.Core
484
485**起始版本:** 11
486
487
488### Drm_ErrCode
489
490```
491typedef enum Drm_ErrCodeDrm_ErrCode
492```
493
494**描述**
495
496DRM错误码。
497
498**系统能力:** SystemCapability.Multimedia.Drm.Core
499
500**起始版本:** 11
501
502
503### DRM_EventType
504
505```
506typedef enum DRM_EventTypeDRM_EventType
507```
508
509**描述**
510
511监听事件类型。
512
513**起始版本:** 11
514
515
516### DRM_KeysInfo
517
518```
519typedef struct DRM_KeysInfoDRM_KeysInfo
520```
521
522**描述**
523
524媒体密钥信息。
525
526**起始版本:** 11
527
528
529### DRM_MediaKeyRequest
530
531```
532typedef struct DRM_MediaKeyRequestDRM_MediaKeyRequest
533```
534
535**描述**
536
537媒体密钥请求。
538
539**起始版本:** 11
540
541
542### DRM_MediaKeyRequestInfo
543
544```
545typedef struct DRM_MediaKeyRequestInfoDRM_MediaKeyRequestInfo
546```
547
548**描述**
549
550媒体密钥请求信息。
551
552**起始版本:** 11
553
554
555### DRM_MediaKeyRequestType
556
557```
558typedef enum DRM_MediaKeyRequestTypeDRM_MediaKeyRequestType
559```
560
561**描述**
562
563许可证请求类型。
564
565**系统能力:** SystemCapability.Multimedia.Drm.Core
566
567**起始版本:** 11
568
569
570### DRM_MediaKeyStatus
571
572```
573typedef struct DRM_MediaKeyStatusDRM_MediaKeyStatus
574```
575
576**描述**
577
578媒体密钥状态。
579
580**起始版本:** 11
581
582
583### DRM_MediaKeySystemInfo
584
585```
586typedef struct DRM_MediaKeySystemInfoDRM_MediaKeySystemInfo
587```
588
589**描述**
590
591用于播放器从媒体源获取媒体密钥系统信息。
592
593**起始版本:** 11
594
595
596### DRM_MediaKeySystemInfoCallback
597
598```
599typedef void(* DRM_MediaKeySystemInfoCallback) (DRM_MediaKeySystemInfo *mediaKeySystemInfo)
600```
601
602**描述**
603
604应用程序为从媒体源获取媒体密钥系统信息而设置的回调。
605
606**起始版本:** 11
607
608**参数:**
609
610| 名称 | 描述 |
611| -------- | -------- |
612| mediaKeySystemInfo | 从媒体源获取的媒体密钥系统信息。 |
613
614
615### DRM_MediaKeyType
616
617```
618typedef enum DRM_MediaKeyTypeDRM_MediaKeyType
619```
620
621**描述**
622
623许可证类型。
624
625**系统能力:** SystemCapability.Multimedia.Drm.Core
626
627**起始版本:** 11
628
629
630### DRM_OfflineMediakeyIdArray
631
632```
633typedef struct DRM_OfflineMediakeyIdArrayDRM_OfflineMediakeyIdArray
634```
635
636**描述**
637
638离线媒体密钥ID数组。
639
640**起始版本:** 11
641
642
643### DRM_OfflineMediaKeyStatus
644
645```
646typedef enum DRM_OfflineMediaKeyStatusDRM_OfflineMediaKeyStatus
647```
648
649**描述**
650
651离线许可证状态。
652
653**系统能力:** SystemCapability.Multimedia.Drm.Core
654
655**起始版本:** 11
656
657
658### DRM_PsshInfo
659
660```
661typedef struct DRM_PsshInfoDRM_PsshInfo
662```
663
664**描述**
665
666uuid的PSSH信息。
667
668**起始版本:** 11
669
670
671### DRM_Statistics
672
673```
674typedef struct DRM_StatisticsDRM_Statistics
675```
676
677**描述**
678
679MediaKeySystem的度量信息。
680
681**起始版本:** 11
682
683
684### MediaKeySession
685
686```
687typedef struct MediaKeySessionMediaKeySession
688```
689
690**描述**
691
692媒体密钥会话结构。
693
694**起始版本:** 11
695
696
697### MediaKeySession_Callback
698
699```
700typedef struct MediaKeySession_CallbackMediaKeySession_Callback
701```
702
703**描述**
704
705MediaKeySession_Callback结构体,用于监听密钥过期、密钥更改等事件。
706
707**起始版本:** 11
708
709
710### MediaKeySession_EventCallback
711
712```
713typedef Drm_ErrCode(* MediaKeySession_EventCallback) (DRM_EventType eventType, uint8_t *info, int32_t infoLen, char *extra)
714```
715
716**描述**
717
718事件触发时将调用的回调。
719
720**起始版本:** 11
721
722**参数:**
723
724| 名称 | 描述 |
725| -------- | -------- |
726| eventType | 事件类型。 |
727| info | 从媒体密钥会话获取的事件信息。 |
728| infoLen | 事件信息长度。 |
729| extra | 从媒体密钥会话中获得的额外信息。 |
730
731**返回:**
732
733Drm_ErrCode 错误码。
734
735
736### MediaKeySession_KeyChangeCallback
737
738```
739typedef Drm_ErrCode(* MediaKeySession_KeyChangeCallback) (DRM_KeysInfo *keysInfo, bool newKeysAvailable)
740```
741
742**描述**
743
744密钥更改时将调用回调。
745
746**起始版本:** 11
747
748**参数:**
749
750| 名称 | 描述 |
751| -------- | -------- |
752| keysInfo | 从媒体密钥系统获取的密钥信息。 |
753| newKeysAvailable | 新密钥是否可用 |
754
755**返回:**
756
757当参数检查失败时返回DRM_ERR_INVALID_VAL,当函数调用成功时返回DRM_ERR_OK。
758
759
760### MediaKeySystem
761
762```
763typedef struct MediaKeySystemMediaKeySystem
764```
765
766**描述**
767
768媒体密钥系统结构。
769
770**起始版本:** 11
771
772
773### MediaKeySystem_Callback
774
775```
776typedef Drm_ErrCode(* MediaKeySystem_Callback) (DRM_EventType eventType, uint8_t *info, int32_t infoLen, char *extra)
777```
778
779**描述**
780
781事件触发时将调用的回调。
782
783**起始版本:** 11
784
785**参数:**
786
787| 名称 | 描述 |
788| -------- | -------- |
789| eventType | 事件类型。 |
790| info | 从媒体密钥系统获取的事件信息。 |
791| infoLen | 事件信息长度。 |
792| extra | 从媒体密钥系统获得的额外信息。 |
793
794**返回:**
795
796当参数检查失败时返回DRM_ERR_INVALID_VAL,当函数调用成功时返回DRM_ERR_OK。
797
798
799## 枚举类型说明
800
801
802### DRM_CertificateStatus
803
804```
805enum DRM_CertificateStatus
806```
807
808**描述**
809
810设备证书状态类型。
811
812**系统能力:** SystemCapability.Multimedia.Drm.Core
813
814**起始版本:** 11
815
816| 枚举值 | 描述 |
817| -------- | -------- |
818| CERT_STATUS_PROVISIONED | 设备已安装设备证书 |
819| CERT_STATUS_NOT_PROVISIONED | 设备未安装设备证书 |
820| CERT_STATUS_EXPIRED | 设备证书过期 |
821| CERT_STATUS_INVALID | 无效设备证书 |
822| CERT_STATUS_UNAVAILABLE | 设备证书不可用 |
823
824
825### DRM_ContentProtectionLevel
826
827```
828enum DRM_ContentProtectionLevel
829```
830
831**描述**
832
833内容保护级别类型。
834
835**系统能力:** SystemCapability.Multimedia.Drm.Core
836
837**起始版本:** 11
838
839| 枚举值 | 描述 |
840| -------- | -------- |
841| CONTENT_PROTECTION_LEVEL_UNKNOWN | 未知级别 |
842| CONTENT_PROTECTION_LEVEL_SW_CRYPTO | 软件安全级别 |
843| CONTENT_PROTECTION_LEVEL_HW_CRYPTO | 硬件安全级别 |
844| CONTENT_PROTECTION_LEVEL_ENHANCED_HW_CRYPTO | 硬件增强级别 |
845| CONTENT_PROTECTION_LEVEL_MAX | 最大安全级别 |
846
847
848### Drm_ErrCode
849
850```
851enum Drm_ErrCode
852```
853
854**描述**
855
856DRM错误码。
857
858**系统能力:** SystemCapability.Multimedia.Drm.Core
859
860**起始版本:** 11
861
862| 枚举值 | 描述 |
863| -------- | -------- |
864| DRM_ERR_OK | 操作成功完成。 |
865| DRM_CAPI_ERR_BASE | 基础错误。 |
866| DRM_ERR_NO_MEMORY | 内存不足。 |
867| DRM_ERR_OPERATION_NOT_PERMITTED | 不支持的操作。 |
868| DRM_ERR_INVALID_VAL | 无效参数。 |
869| DRM_ERR_IO | IO 错误。 |
870| DRM_ERR_TIMEOUT | 网络超时。 |
871| DRM_ERR_UNKNOWN | 未知错误。 |
872| DRM_ERR_SERVICE_DIED | drm服务挂死。 |
873| DRM_ERR_INVALID_STATE | 无效的操作状态。 |
874| DRM_ERR_UNSUPPORTED | 不支持的操作。 |
875| DRM_ERR_MAX_SYSTEM_NUM_REACHED | MediaKeySystem最大实例数。 |
876| DRM_ERR_MAX_SESSION_NUM_REACHED | MediaKeySession最大实例数。 |
877| DRM_ERR_EXTEND_START | 扩展错误。 |
878
879
880### DRM_EventType
881
882```
883enum DRM_EventType
884```
885
886**描述**
887
888监听事件类型。
889
890**起始版本:** 11
891
892| 枚举值 | 描述 |
893| -------- | -------- |
894| EVENT_DRM_BASE | DRM基础事件 |
895| EVENT_PROVISION_REQUIRED | 设备证书请求事件 |
896| EVENT_KEY_REQUIRED | 密钥请求事件 |
897| EVENT_KEY_EXPIRED | 密钥过期事件 |
898| EVENT_VENDOR_DEFINED | 第三方定义事件 |
899| EVENT_EXPIRATION_UPDATE | 密钥过期更新事件 |
900
901
902### DRM_MediaKeyRequestType
903
904```
905enum DRM_MediaKeyRequestType
906```
907
908**描述**
909
910许可证请求类型。
911
912**系统能力:** SystemCapability.Multimedia.Drm.Core
913
914**起始版本:** 11
915
916| 枚举值 | 描述 |
917| -------- | -------- |
918| MEDIA_KEY_REQUEST_TYPE_UNKNOWN | 未知请求类型 |
919| MEDIA_KEY_REQUEST_TYPE_INITIAL | 初始化请求 |
920| MEDIA_KEY_REQUEST_TYPE_RENEWAL | 续订请求 |
921| MEDIA_KEY_REQUEST_TYPE_RELEASE | 释放请求 |
922| MEDIA_KEY_REQUEST_TYPE_NONE | 无请求 |
923| MEDIA_KEY_REQUEST_TYPE_UPDATE | 更新请求 |
924
925
926### DRM_MediaKeyType
927
928```
929enum DRM_MediaKeyType
930```
931
932**描述**
933
934许可证类型。
935
936**系统能力:** SystemCapability.Multimedia.Drm.Core
937
938**起始版本:** 11
939
940| 枚举值 | 描述 |
941| -------- | -------- |
942| MEDIA_KEY_TYPE_OFFLINE | 离线 |
943| MEDIA_KEY_TYPE_ONLINE | 在线 |
944
945
946### DRM_OfflineMediaKeyStatus
947
948```
949enum DRM_OfflineMediaKeyStatus
950```
951
952**描述**
953
954离线许可证状态。
955
956**系统能力:** SystemCapability.Multimedia.Drm.Core
957
958**起始版本:** 11
959
960| 枚举值 | 描述 |
961| -------- | -------- |
962| OFFLINE_MEDIA_KEY_STATUS_UNKNOWN | 未知状态 |
963| OFFLINE_MEDIA_KEY_STATUS_USABLE | 可用状态 |
964| OFFLINE_MEDIA_KEY_STATUS_INACTIVE | 失活状态 |
965
966
967## 函数说明
968
969
970### OH_MediaKeySession_CheckMediaKeyStatus()
971
972```
973Drm_ErrCode OH_MediaKeySession_CheckMediaKeyStatus (MediaKeySession * mediaKeySessoin, DRM_MediaKeyStatus * mediaKeyStatus )
974```
975
976**描述**
977
978检查媒体密钥状态。
979
980**起始版本:** 11
981
982**参数:**
983
984| 名称 | 描述 |
985| -------- | -------- |
986| mediaKeySession | 媒体密钥会话实例。 |
987| mediaKeyStatus | 媒体密钥状态。 |
988
989**返回:**
990
991当参数检查失败时返回DRM_ERR_INVALID_VAL,当函数调用成功时返回DRM_ERR_OK。
992
993
994### OH_MediaKeySession_ClearMediaKeys()
995
996```
997Drm_ErrCode OH_MediaKeySession_ClearMediaKeys (MediaKeySession * mediaKeySessoin)
998```
999
1000**描述**
1001
1002清除当前会话的媒体密钥。
1003
1004**起始版本:** 11
1005
1006**参数:**
1007
1008| 名称 | 描述 |
1009| -------- | -------- |
1010| mediaKeySession | 媒体密钥会话实例。 |
1011
1012**返回:**
1013
1014当参数检查失败时返回DRM_ERR_INVALID_VAL,当函数调用成功时返回DRM_ERR_OK。
1015
1016
1017### OH_MediaKeySession_Destroy()
1018
1019```
1020Drm_ErrCode OH_MediaKeySession_Destroy (MediaKeySession * mediaKeySessoin)
1021```
1022
1023**描述**
1024
1025释放会话资源。
1026
1027**起始版本:** 11
1028
1029**参数:**
1030
1031| 名称 | 描述 |
1032| -------- | -------- |
1033| mediaKeySession | 媒体密钥会话实例。 |
1034
1035**返回:**
1036
1037当参数检查失败时返回DRM_ERR_INVALID_VAL,当函数调用成功时返回DRM_ERR_OK。
1038
1039
1040### OH_MediaKeySession_GenerateMediaKeyRequest()
1041
1042```
1043Drm_ErrCode OH_MediaKeySession_GenerateMediaKeyRequest (MediaKeySession * mediaKeySession, DRM_MediaKeyRequestInfo * info, DRM_MediaKeyRequest * mediaKeyRequest )
1044```
1045
1046**描述**
1047
1048生成媒体密钥请求。
1049
1050**起始版本:** 11
1051
1052**参数:**
1053
1054| 名称 | 描述 |
1055| -------- | -------- |
1056| mediaKeySession | 媒体密钥会话实例。 |
1057| info | 媒体密钥请求信息。 |
1058| mediaKeyRequest | 媒体密钥请求。 |
1059
1060**返回:**
1061
1062Drm_ErrCode 错误码。
1063
1064
1065### OH_MediaKeySession_GenerateOfflineReleaseRequest()
1066
1067```
1068Drm_ErrCode OH_MediaKeySession_GenerateOfflineReleaseRequest (MediaKeySession * mediaKeySessoin, uint8_t * offlineMediaKeyId, int32_t offlineMediaKeyIdLen, uint8_t * releaseRequest, int32_t * releaseRequestLen )
1069```
1070
1071**描述**
1072
1073生成离线媒体密钥释放请求。
1074
1075**起始版本:** 11
1076
1077**参数:**
1078
1079| 名称 | 描述 |
1080| -------- | -------- |
1081| mediaKeySession | 媒体密钥会话实例。 |
1082| offlineMediaKeyId | 离线媒体密钥标识符。 |
1083| releaseRequestLen | 离线媒体密钥标识符长度。 |
1084
1085**返回:**
1086
1087当参数检查失败时返回DRM_ERR_INVALID_VAL,当函数调用成功时返回DRM_ERR_OK。
1088
1089
1090### OH_MediaKeySession_GetContentProtectionLevel()
1091
1092```
1093Drm_ErrCode OH_MediaKeySession_GetContentProtectionLevel (MediaKeySession * mediaKeySessoin, DRM_ContentProtectionLevel * contentProtectionLevel )
1094```
1095
1096**描述**
1097
1098获取会话的内容保护级别。
1099
1100**起始版本:** 11
1101
1102**参数:**
1103
1104| 名称 | 描述 |
1105| -------- | -------- |
1106| mediaKeySession | 媒体密钥会话实例。 |
1107| contentProtectionLevel | 内容保护级别。 |
1108
1109**返回:**
1110
1111当参数检查失败时返回DRM_ERR_INVALID_VAL,当函数调用成功时返回DRM_ERR_OK。
1112
1113
1114### OH_MediaKeySession_ProcessMediaKeyResponse()
1115
1116```
1117Drm_ErrCode OH_MediaKeySession_ProcessMediaKeyResponse (MediaKeySession * mediaKeySession, uint8_t * response, int32_t responseLen, uint8_t * offlineMediaKeyId, int32_t * offlineMediaKeyIdLen )
1118```
1119
1120**描述**
1121
1122处理媒体密钥响应。
1123
1124**起始版本:** 11
1125
1126**参数:**
1127
1128| 名称 | 描述 |
1129| -------- | -------- |
1130| mediaKeySession | 媒体密钥会话实例。 |
1131| response | 媒体密钥响应。 |
1132| responseLen | 媒体密钥响应长度。 |
1133| offlineMediaKeyId | 离线媒体密钥标识符。 |
1134| offlineMediaKeyIdLen | 缓冲区内和缓冲区外数据的离线媒体密钥标识符的长度。 |
1135
1136**返回:**
1137
1138当参数检查失败时返回DRM_ERR_INVALID_VAL,当函数调用成功时返回DRM_ERR_OK。
1139
1140
1141### OH_MediaKeySession_ProcessOfflineReleaseResponse()
1142
1143```
1144Drm_ErrCode OH_MediaKeySession_ProcessOfflineReleaseResponse (MediaKeySession * mediaKeySessoin, uint8_t * offlineMediaKeyId, int32_t offlineMediaKeyIdLen, uint8_t * releaseReponse, int32_t releaseReponseLen )
1145```
1146
1147**描述**
1148
1149处理离线媒体密钥释放响应。
1150
1151**起始版本:** 11
1152
1153**参数:**
1154
1155| 名称 | 描述 |
1156| -------- | -------- |
1157| mediaKeySession | 媒体密钥会话实例。 |
1158| offlineMediaKeyId | 离线媒体密钥标识符。 |
1159| offlineMediaKeyIdLen | 离线媒体密钥标识符长度。 |
1160| releaseReponse | 媒体密钥响应。 |
1161| releaseReponseLen | 媒体密钥响应长度。 |
1162
1163**返回:**
1164
1165当参数检查失败时返回DRM_ERR_INVALID_VAL,当函数调用成功时返回DRM_ERR_OK。
1166
1167
1168### OH_MediaKeySession_RequireSecureDecoderModule()
1169
1170```
1171Drm_ErrCode OH_MediaKeySession_RequireSecureDecoderModule (MediaKeySession * mediaKeySessoin, const char * mimeType, bool * status )
1172```
1173
1174**描述**
1175
1176加密内容是否需要安全解码。
1177
1178**起始版本:** 11
1179
1180**参数:**
1181
1182| 名称 | 描述 |
1183| -------- | -------- |
1184| mediaKeySession | 媒体密钥会话实例。 |
1185| mimeType | 媒体类型。 |
1186| status | 是否需要安全解码。 |
1187
1188**返回:**
1189
1190当参数检查失败时返回DRM_ERR_INVALID_VAL,当函数调用成功时返回DRM_ERR_OK。
1191
1192
1193### OH_MediaKeySession_RestoreOfflineMediaKeys()
1194
1195```
1196Drm_ErrCode OH_MediaKeySession_RestoreOfflineMediaKeys (MediaKeySession * mediaKeySessoin, uint8_t * offlineMediaKeyId, int32_t offlineMediaKeyIdLen )
1197```
1198
1199**描述**
1200
1201按ID还原离线媒体密钥。
1202
1203**起始版本:** 11
1204
1205**参数:**
1206
1207| 名称 | 描述 |
1208| -------- | -------- |
1209| mediaKeySession | 媒体密钥会话实例。 |
1210| offlineMediaKeyId | 离线媒体密钥标识符。 |
1211| offlineMediaKeyIdLen | 离线媒体密钥标识符长度。 |
1212
1213**返回:**
1214
1215当参数检查失败时返回DRM_ERR_INVALID_VAL,当函数调用成功时返回DRM_ERR_OK。
1216
1217
1218### OH_MediaKeySession_SetMediaKeySessionCallback()
1219
1220```
1221Drm_ErrCode OH_MediaKeySession_SetMediaKeySessionCallback (MediaKeySession * mediaKeySessoin, MediaKeySession_Callback * callback )
1222```
1223
1224**描述**
1225
1226设置媒体密钥会话事件回调。
1227
1228**起始版本:** 11
1229
1230**参数:**
1231
1232| 名称 | 描述 |
1233| -------- | -------- |
1234| mediaKeySession | 媒体密钥会话实例。 |
1235| callback | 要设置为媒体密钥会话的回调。 |
1236
1237**返回:**
1238
1239当参数检查失败时返回DRM_ERR_INVALID_VAL,当函数调用成功时返回DRM_ERR_OK。
1240
1241
1242### OH_MediaKeySystem_ClearOfflineMediaKeys()
1243
1244```
1245Drm_ErrCode OH_MediaKeySystem_ClearOfflineMediaKeys (MediaKeySystem * mediaKeySystem, uint8_t * offlineMediaKeyId, int32_t offlineMediaKeyIdLen )
1246```
1247
1248**描述**
1249
1250按id清除离线媒体密钥。
1251
1252**起始版本:** 11
1253
1254**参数:**
1255
1256| 名称 | 描述 |
1257| -------- | -------- |
1258| mediaKeySystem | 媒体密钥系统实例。 |
1259| offlineMediaKeyId | 离线媒体密钥标识符。 |
1260| offlineMediaKeyIdLen | 离线媒体密钥标识符长度。 |
1261
1262**返回:**
1263
1264当参数检查失败时返回DRM_ERR_INVALID_VAL,当函数调用成功时返回DRM_ERR_OK。
1265
1266
1267### OH_MediaKeySystem_Create()
1268
1269```
1270Drm_ErrCode OH_MediaKeySystem_Create (const char * name, MediaKeySystem ** mediaKeySystem )
1271```
1272
1273**描述**
1274
1275根据名称创建媒体密钥系统实例。
1276
1277**起始版本:** 11
1278
1279**参数:**
1280
1281| 名称 | 描述 |
1282| -------- | -------- |
1283| name | 说明将按名称创建哪个drm系统。 |
1284| mediaKeySystem | 媒体密钥系统实例。 |
1285
1286**返回:**
1287
1288当参数检查失败时返回DRM_ERR_INVALID_VAL,当函数调用成功时返回DRM_ERR_OK, 当达到媒体密钥会话的最大数量时,返回DRM_ERR_MAX_SYSTEM_NUM_REACHED。
1289
1290
1291### OH_MediaKeySystem_CreateMediaKeySession()
1292
1293```
1294Drm_ErrCode OH_MediaKeySystem_CreateMediaKeySession (MediaKeySystem * mediaKeySystem, DRM_ContentProtectionLevel * level, MediaKeySession ** mediaKeySession )
1295```
1296
1297**描述**
1298
1299创建媒体密钥会话实例。
1300
1301**起始版本:** 11
1302
1303**参数:**
1304
1305| 名称 | 描述 |
1306| -------- | -------- |
1307| mediaKeySystem | 将创建媒体密钥会话的媒体密钥系统实例。 |
1308| level | 指定内容保护级别。 |
1309| mediaKeySession | 媒体密钥会话实例。 |
1310
1311**返回:**
1312
1313当参数检查失败时返回DRM_ERR_INVALID_VAL,当函数调用成功时返回DRM_ERR_OK, 当达到媒体密钥会话的最大数量时,返回DRM_ERR_MAX_SESSION_NUM_REACHED。
1314
1315
1316### OH_MediaKeySystem_Destroy()
1317
1318```
1319Drm_ErrCode OH_MediaKeySystem_Destroy (MediaKeySystem * mediaKeySystem)
1320```
1321
1322**描述**
1323
1324Destroy a 媒体密钥系统实例。
1325
1326**起始版本:** 11
1327
1328**参数:**
1329
1330| 名称 | 描述 |
1331| -------- | -------- |
1332| mediaKeySystem | 指定将销毁哪个媒体密钥系统实例。 |
1333
1334**返回:**
1335
1336当参数检查失败时返回DRM_ERR_INVALID_VAL,当函数调用成功时返回DRM_ERR_OK。
1337
1338
1339### OH_MediaKeySystem_GenerateKeySystemRequest()
1340
1341```
1342Drm_ErrCode OH_MediaKeySystem_GenerateKeySystemRequest (MediaKeySystem * mediaKeySystem, uint8_t * request, int32_t * requestLen, char * defaultUrl, int32_t defaultUrlLen )
1343```
1344
1345**描述**
1346
1347生成媒体密钥系统提供请求。
1348
1349**起始版本:** 11
1350
1351**参数:**
1352
1353| 名称 | 描述 |
1354| -------- | -------- |
1355| mediaKeySystem | 媒体密钥系统实例。 |
1356| request | 发送给设备服务器的请求。 |
1357| requestLen | 设备证书请求的长度。 |
1358| defaultUrl | 设备证书服务器的网址。 |
1359| defaultUrlLen | 设备证书服务器的网址长度。 |
1360
1361**返回:**
1362
1363当参数检查失败时返回DRM_ERR_INVALID_VAL,当函数调用成功时返回DRM_ERR_OK。
1364
1365
1366### OH_MediaKeySystem_GetCertificateStatus()
1367
1368```
1369Drm_ErrCode OH_MediaKeySystem_GetCertificateStatus (MediaKeySystem * mediaKeySystem, DRM_CertificateStatus * certStatus )
1370```
1371
1372**描述**
1373
1374获取媒体密钥系统的证书状态。
1375
1376**起始版本:** 11
1377
1378**参数:**
1379
1380| 名称 | 描述 |
1381| -------- | -------- |
1382| mediaKeySystem | 媒体密钥系统实例。 |
1383| certStatus | 获得的证书状态值。 |
1384
1385**返回:**
1386
1387当参数检查失败时返回DRM_ERR_INVALID_VAL,当函数调用成功时返回DRM_ERR_OK。
1388
1389
1390### OH_MediaKeySystem_GetConfigurationByteArray()
1391
1392```
1393Drm_ErrCode OH_MediaKeySystem_GetConfigurationByteArray (MediaKeySystem * mediaKeySystem, const char * configName, uint8_t * value, int32_t * valueLen )
1394```
1395
1396**描述**
1397
1398按字符数组类型的名称获取媒体密钥系统配置值。
1399
1400**起始版本:** 11
1401
1402**参数:**
1403
1404| 名称 | 描述 |
1405| -------- | -------- |
1406| mediaKeySystem | 媒体密钥系统实例。 |
1407| configName | 配置名称字符串。 |
1408| value | 要获取数组中的配置值。 |
1409| valueLen | 数据的配置值长度。 |
1410
1411**返回:**
1412
1413当参数检查失败时返回DRM_ERR_INVALID_VAL,当函数调用成功时返回DRM_ERR_OK。
1414
1415
1416### OH_MediaKeySystem_GetConfigurationString()
1417
1418```
1419Drm_ErrCode OH_MediaKeySystem_GetConfigurationString (MediaKeySystem * mediaKeySystem, const char * configName, char * value, int32_t valueLen )
1420```
1421
1422**描述**
1423
1424按字符串类型名称获取媒体密钥系统配置值。
1425
1426**起始版本:** 11
1427
1428**参数:**
1429
1430| 名称 | 描述 |
1431| -------- | -------- |
1432| mediaKeySystem | 媒体密钥系统实例。 |
1433| configName | 字符串类型配置名。 |
1434| value | 字符串形式配置值。 |
1435| valueLen | 字符串形式配置值长度。 |
1436
1437**返回:**
1438
1439当参数检查失败时返回DRM_ERR_INVALID_VAL,当函数调用成功时返回DRM_ERR_OK。
1440
1441
1442### OH_MediaKeySystem_GetMaxContentProtectionLevel()
1443
1444```
1445Drm_ErrCode OH_MediaKeySystem_GetMaxContentProtectionLevel (MediaKeySystem * mediaKeySystem, DRM_ContentProtectionLevel * contentProtectionLevel )
1446```
1447
1448**描述**
1449
1450获取支持的最高内容保护级别的媒体密钥系统。
1451
1452**起始版本:** 11
1453
1454**参数:**
1455
1456| 名称 | 描述 |
1457| -------- | -------- |
1458| mediaKeySystem | 媒体密钥系统实例。 |
1459| contentProtectionLevel | 内容保护级别。 |
1460
1461**返回:**
1462
1463当参数检查失败时返回DRM_ERR_INVALID_VAL,当函数调用成功时返回DRM_ERR_OK。
1464
1465
1466### OH_MediaKeySystem_GetOfflineMediaKeyIds()
1467
1468```
1469Drm_ErrCode OH_MediaKeySystem_GetOfflineMediaKeyIds (MediaKeySystem * mediaKeySystem, DRM_OfflineMediakeyIdArray * offlineMediaKeyIds )
1470```
1471
1472**描述**
1473
1474获取离线媒体密钥ID。
1475
1476**起始版本:** 11
1477
1478**参数:**
1479
1480| 名称 | 描述 |
1481| -------- | -------- |
1482| mediaKeySystem | 媒体密钥系统实例。 |
1483| offlineMediaKeyIds | 所有离线媒体密钥的媒体密钥ID。 |
1484
1485**返回:**
1486
1487当参数检查失败时返回DRM_ERR_INVALID_VAL,当函数调用成功时返回DRM_ERR_OK。
1488
1489
1490### OH_MediaKeySystem_GetOfflineMediaKeyStatus()
1491
1492```
1493Drm_ErrCode OH_MediaKeySystem_GetOfflineMediaKeyStatus (MediaKeySystem * mediaKeySystem, uint8_t * offlineMediaKeyId, int32_t offlineMediaKeyIdLen, DRM_OfflineMediaKeyStatus * status )
1494```
1495
1496**描述**
1497
1498获取离线密钥状态。
1499
1500**起始版本:** 11
1501
1502**参数:**
1503
1504| 名称 | 描述 |
1505| -------- | -------- |
1506| mediaKeySystem | 媒体密钥系统实例。 |
1507| offlineMediaKeyId | 离线媒体密钥标识符。 |
1508| offlineMediaKeyIdLen | 离线媒体密钥标识符长度。 |
1509| status | 已获取媒体密钥状态。 |
1510
1511**返回:**
1512
1513当参数检查失败时返回DRM_ERR_INVALID_VAL,当函数调用成功时返回DRM_ERR_OK。
1514
1515
1516### OH_MediaKeySystem_GetStatistics()
1517
1518```
1519Drm_ErrCode OH_MediaKeySystem_GetStatistics (MediaKeySystem * mediaKeySystem, DRM_Statistics * statistics )
1520```
1521
1522**描述**
1523
1524获取媒体密钥系统度量信息。
1525
1526**起始版本:** 11
1527
1528**参数:**
1529
1530| 名称 | 描述 |
1531| -------- | -------- |
1532| mediaKeySystem | 媒体密钥系统实例。 |
1533| statistics | 已获取度量信息。 |
1534
1535**返回:**
1536
1537当参数检查失败时返回DRM_ERR_INVALID_VAL,当函数调用成功时返回DRM_ERR_OK。
1538
1539
1540### OH_MediaKeySystem_IsSupported()
1541
1542```
1543bool OH_MediaKeySystem_IsSupported (const char * name)
1544```
1545
1546**描述**
1547
1548查询是否支持媒体密钥系统。
1549
1550**起始版本:** 11
1551
1552**参数:**
1553
1554| 名称 | 描述 |
1555| -------- | -------- |
1556| name | 用于指向数字权限管理解决方案。 |
1557
1558**返回:**
1559
1560是否支持。
1561
1562
1563### OH_MediaKeySystem_IsSupported2()
1564
1565```
1566bool OH_MediaKeySystem_IsSupported2 (const char * name, const char * mimeType )
1567```
1568
1569**描述**
1570
1571查询是否支持媒体密钥系统。
1572
1573**起始版本:** 11
1574
1575**参数:**
1576
1577| 名称 | 描述 |
1578| -------- | -------- |
1579| name | 用于指向数字权限管理解决方案。 |
1580| mimeType | 用于指定媒体类型。 |
1581
1582**返回:**
1583
1584是否支持。
1585
1586
1587### OH_MediaKeySystem_IsSupported3()
1588
1589```
1590bool OH_MediaKeySystem_IsSupported3 (const char * name, const char * mimeType, DRM_ContentProtectionLevel contentProtectionLevel )
1591```
1592
1593**描述**
1594
1595查询是否支持媒体密钥系统。
1596
1597**起始版本:** 11
1598
1599**参数:**
1600
1601| 名称 | 描述 |
1602| -------- | -------- |
1603| name | 用于指向数字权限管理解决方案。 |
1604| mimeType | 用于指定媒体类型。 |
1605| contentProtectionLevel | 用于指定安全等级。 |
1606
1607**返回:**
1608
1609是否支持。
1610
1611
1612### OH_MediaKeySystem_ProcessKeySystemResponse()
1613
1614```
1615Drm_ErrCode OH_MediaKeySystem_ProcessKeySystemResponse (MediaKeySystem * mediaKeySystem, uint8_t * response, int32_t responseLen )
1616```
1617
1618**描述**
1619
1620处理媒体密钥系统提供响应。
1621
1622**起始版本:** 11
1623
1624**参数:**
1625
1626| 名称 | 描述 |
1627| -------- | -------- |
1628| mediaKeySystem | 媒体密钥系统实例。 |
1629| response | 将处理的响应。 |
1630| responseLen | 响应长度。 |
1631
1632**返回:**
1633
1634当参数检查失败时返回DRM_ERR_INVALID_VAL,当函数调用成功时返回DRM_ERR_OK。
1635
1636
1637### OH_MediaKeySystem_SetConfigurationByteArray()
1638
1639```
1640Drm_ErrCode OH_MediaKeySystem_SetConfigurationByteArray (MediaKeySystem * mediaKeySystem, const char * configName, uint8_t * value, int32_t valueLen )
1641```
1642
1643**描述**
1644
1645通过字符数组类型配置名设置MediaKeySystem的配置值。
1646
1647**起始版本:** 11
1648
1649**参数:**
1650
1651| 名称 | 描述 |
1652| -------- | -------- |
1653| mediaKeySystem | 媒体密钥系统实例。 |
1654| configName | 字符串类型配置名。 |
1655| value | 字节数组形式配置值。 |
1656| valueLen | 字节数组形式配置值长度。 |
1657
1658**返回:**
1659
1660当参数检查失败时返回DRM_ERR_INVALID_VAL,当函数调用成功时返回DRM_ERR_OK。
1661
1662
1663### OH_MediaKeySystem_SetConfigurationString()
1664
1665```
1666Drm_ErrCode OH_MediaKeySystem_SetConfigurationString (MediaKeySystem * mediaKeySystem, const char * configName, const char * value )
1667```
1668
1669**描述**
1670
1671按字符串类型名称设置媒体密钥系统配置值。
1672
1673**起始版本:** 11
1674
1675**参数:**
1676
1677| 名称 | 描述 |
1678| -------- | -------- |
1679| mediaKeySystem | 媒体密钥系统实例。 |
1680| configName | 配置名称字符串。 |
1681| value | 要设置的字符串的配置值。 |
1682
1683**返回:**
1684
1685当参数检查失败时返回DRM_ERR_INVALID_VAL,当函数调用成功时返回DRM_ERR_OK。
1686
1687
1688### OH_MediaKeySystem_SetMediaKeySystemCallback()
1689
1690```
1691Drm_ErrCode OH_MediaKeySystem_SetMediaKeySystemCallback (MediaKeySystem * mediaKeySystem, MediaKeySystem_Callback callback )
1692```
1693
1694**描述**
1695
1696设置媒体密钥系统事件回调。
1697
1698**起始版本:** 11
1699
1700**参数:**
1701
1702| 名称 | 描述 |
1703| -------- | -------- |
1704| mediaKeySystem | 媒体密钥系统实例。 |
1705| callback | 将回调设置为媒体密钥系统。 |
1706
1707**返回:**
1708
1709当参数检查失败时返回DRM_ERR_INVALID_VAL,当函数调用成功时返回DRM_ERR_OK。
1710
1711
1712## 变量说明
1713
1714
1715### data [1/2]
1716
1717```
1718uint8_t DRM_MediaKeyRequest::data[MAX_MEDIA_KEY_REQUEST_DATA_LEN]
1719```
1720
1721**描述**
1722
1723发送到媒体密钥服务器的媒体密钥请求数据。
1724
1725
1726### data [2/2]
1727
1728```
1729uint8_t DRM_PsshInfo::data[MAX_PSSH_DATA_LEN]
1730```
1731
1732**描述**
1733
1734uint8_t PSSH数据。
1735
1736
1737### dataLen [1/2]
1738
1739```
1740int32_t DRM_MediaKeyRequest::dataLen
1741```
1742
1743**描述**
1744
1745媒体密钥请求数据长度。
1746
1747
1748### dataLen [2/2]
1749
1750```
1751int32_t DRM_PsshInfo::dataLen
1752```
1753
1754**描述**
1755
1756PSSH数据长度。
1757
1758
1759### defaultUrl
1760
1761```
1762char DRM_MediaKeyRequest::defaultUrl[MAX_DEFAULT_URL_LEN]
1763```
1764
1765**描述**
1766
1767媒体密钥服务器URL。
1768
1769
1770### eventCallback
1771
1772```
1773MediaKeySession_EventCallback MediaKeySession_Callback::eventCallback
1774```
1775
1776**描述**
1777
1778正常事件回调,如密钥过期等。
1779
1780
1781### ids
1782
1783```
1784uint8_t DRM_OfflineMediakeyIdArray::ids[MAX_OFFLINE_MEDIA_KEY_ID_COUNT][MAX_OFFLINE_MEDIA_KEY_ID_LEN]
1785```
1786
1787**描述**
1788
1789ID数据集合
1790
1791
1792### idsCount
1793
1794```
1795uint32_t DRM_OfflineMediakeyIdArray::idsCount
1796```
1797
1798**描述**
1799
1800ID计数
1801
1802
1803### idsLen
1804
1805```
1806int32_t DRM_OfflineMediakeyIdArray::idsLen[MAX_OFFLINE_MEDIA_KEY_ID_COUNT]
1807```
1808
1809**描述**
1810
1811ID长度集合
1812
1813
1814### initData
1815
1816```
1817uint8_t DRM_MediaKeyRequestInfo::initData[MAX_INIT_DATA_LEN]
1818```
1819
1820**描述**
1821
1822base64解码后格式为PSSH的初始数据。
1823
1824
1825### initDataLen
1826
1827```
1828int32_t DRM_MediaKeyRequestInfo::initDataLen
1829```
1830
1831**描述**
1832
1833初始数据长度。
1834
1835
1836### keyChangeCallback
1837
1838```
1839MediaKeySession_KeyChangeCallback MediaKeySession_Callback::keyChangeCallback
1840```
1841
1842**描述**
1843
1844密钥更改事件的密钥更改回调。
1845
1846
1847### keyId
1848
1849```
1850uint8_t DRM_KeysInfo::keyId[MAX_KEY_INFO_COUNT][MAX_KEY_ID_LEN]
1851```
1852
1853**描述**
1854
1855密钥ID集合。
1856
1857
1858### keysInfoCount
1859
1860```
1861uint32_t DRM_KeysInfo::keysInfoCount
1862```
1863
1864**描述**
1865
1866钥匙计数。
1867
1868
1869### mimeType
1870
1871```
1872char DRM_MediaKeyRequestInfo::mimeType[MAX_MIMETYPE_LEN]
1873```
1874
1875**描述**
1876
1877媒体上下文的mime类型。
1878
1879
1880### optionData
1881
1882```
1883char DRM_MediaKeyRequestInfo::optionData[MAX_MEDIA_KEY_REQUEST_OPTION_COUNT][MAX_MEDIA_KEY_REQUEST_OPTION_DATA_LEN]
1884```
1885
1886**描述**
1887
1888选项数据集合。
1889
1890
1891### optionName
1892
1893```
1894char DRM_MediaKeyRequestInfo::optionName[MAX_MEDIA_KEY_REQUEST_OPTION_COUNT][MAX_MEDIA_KEY_REQUEST_OPTION_NAME_LEN]
1895```
1896
1897**描述**
1898
1899选项名称集合。
1900
1901
1902### optionsCount
1903
1904```
1905uint32_t DRM_MediaKeyRequestInfo::optionsCount
1906```
1907
1908**描述**
1909
1910选项数据计数。
1911
1912
1913### psshCount
1914
1915```
1916uint32_t DRM_MediaKeySystemInfo::psshCount
1917```
1918
1919**描述**
1920
1921PSSH计数。
1922
1923
1924### psshInfo
1925
1926```
1927DRM_PsshInfo DRM_MediaKeySystemInfo::psshInfo[MAX_PSSH_INFO_COUNT]
1928```
1929
1930**描述**
1931
1932PSSH信息.
1933
1934
1935### statisticsCount
1936
1937```
1938uint32_t DRM_Statistics::statisticsCount
1939```
1940
1941**描述**
1942
1943度量计数。
1944
1945
1946### statisticsDescription
1947
1948```
1949char DRM_Statistics::statisticsDescription[MAX_STATISTICS_COUNT][MAX_STATISTICS_BUFFER_LEN]
1950```
1951
1952**描述**
1953
1954度量信息描述集合。
1955
1956
1957### statisticsName
1958
1959```
1960char DRM_Statistics::statisticsName[MAX_STATISTICS_COUNT][MAX_STATISTICS_NAME_LEN]
1961```
1962
1963**描述**
1964
1965度量信息名称集合。
1966
1967
1968### statusCount
1969
1970```
1971uint32_t DRM_MediaKeyStatus::statusCount
1972```
1973
1974**描述**
1975
1976状态计数。
1977
1978
1979### statusName
1980
1981```
1982char DRM_MediaKeyStatus::statusName[MAX_MEDIA_KEY_STATUS_COUNT][MAX_MEDIA_KEY_STATUS_NAME_LEN]
1983```
1984
1985**描述**
1986
1987状态名数组。
1988
1989
1990### statusValue [1/2]
1991
1992```
1993char DRM_KeysInfo::statusValue[MAX_KEY_INFO_COUNT][MAX_KEY_STATUS_VALUE_LEN]
1994```
1995
1996**描述**
1997
1998关键状态值。
1999
2000
2001### statusValue [2/2]
2002
2003```
2004char DRM_MediaKeyStatus::statusValue[MAX_MEDIA_KEY_STATUS_COUNT][MAX_MEDIA_KEY_STATUS_VALUE_LEN]
2005```
2006
2007**描述**
2008
2009状态值数组。
2010
2011
2012### type [1/2]
2013
2014```
2015DRM_MediaKeyType DRM_MediaKeyRequestInfo::type
2016```
2017
2018**描述**
2019
2020密钥类型
2021
2022
2023### type [2/2]
2024
2025```
2026DRM_MediaKeyRequestType DRM_MediaKeyRequest::type
2027```
2028
2029**描述**
2030
2031媒体密钥请求类型。
2032
2033
2034### uuid
2035
2036```
2037uint8_t DRM_PsshInfo::uuid[DRM_UUID_LEN]
2038```
2039
2040**描述**
2041
2042Uuid.
2043