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/avc、video/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/avc、video/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/avc、video/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解决方案唯一标识。