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