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