harmony 鸿蒙Drm

  • 2025-06-12
  • 浏览 (3)

Drm

概述

提供数字版权保护能力的C接口API。

开发者可根据实际的开发需求,参考对应的开发指南及样例:

起始版本: 11

汇总

文件

名称 描述
native_drm_common.h 定义DRM数据类型。
native_drm_err.h 定义DRM错误码。
native_mediakeysession.h 定义Drm MediaKeySession API。
native_mediakeysystem.h 定义Drm MediaKeySystem API。

结构体

名称 描述
struct DRM_MediaKeyRequestInfo 媒体密钥请求信息。
struct DRM_MediaKeyRequest 媒体密钥请求。
struct DRM_Statistics MediaKeySystem的度量记录。
struct DRM_OfflineMediakeyIdArray 离线媒体密钥标识列表。
struct DRM_KeysInfo 媒体密钥信息。
struct DRM_MediaKeyStatus 媒体密钥状态。
struct DRM_PsshInfo DRM内容保护系统专用头(Protection System Specific Header)信息。
struct DRM_MediaKeySystemInfo 加密媒体内容的DRM信息。
struct MediaKeySession_Callback MediaKeySession_Callback结构体,用于监听密钥变换等事件,适用于单个媒体解密的场景。
struct OH_MediaKeySession_Callback OH_MediaKeySession_Callback结构体,用于监听密钥变换等事件,适用多个媒体解密的场景。
struct DRM_MediaKeySystemDescription DRM解决方案名称及其UUID的列表。

宏定义

名称 描述
MAX_MEDIA_KEY_REQUEST_OPTION_COUNT   16 媒体密钥请求可选数据的最大数量。
MAX_MEDIA_KEY_REQUEST_OPTION_NAME_LEN   64 媒体密钥请求可选数据名称的最大长度。
MAX_MEDIA_KEY_REQUEST_OPTION_DATA_LEN   128 媒体密钥请求可选数据的最大长度。
MAX_INIT_DATA_LEN   2048 媒体密钥请求初始化数据的最大长度。
MAX_MIMETYPE_LEN   64 媒体mimetype的最大长度。
MAX_MEDIA_KEY_REQUEST_DATA_LEN   8192 媒体密钥请求数据的最大长度。
MAX_DEFAULT_URL_LEN   2048 URL最大长度。
MAX_STATISTICS_COUNT   10 度量记录的最大数量。
MAX_STATISTICS_NAME_LEN   64 度量记录名称的最大长度。
MAX_STATISTICS_BUFFER_LEN   256 度量记录缓冲区的最大长度。
MAX_OFFLINE_MEDIA_KEY_ID_COUNT   512 离线媒体密钥标识的最大数量。
MAX_OFFLINE_MEDIA_KEY_ID_LEN   64 离线媒体密钥标识的最大长度。
MAX_KEY_INFO_COUNT   64 密钥信息的最大数量。
MAX_KEY_ID_LEN   16 密钥标识的最大长度。
MAX_KEY_STATUS_VALUE_LEN   128 密钥状态值的最大长度。
MAX_MEDIA_KEY_STATUS_COUNT   64 媒体密钥状态的最大数量。
MAX_MEDIA_KEY_STATUS_NAME_LEN   64 媒体密钥状态名称的最大长度。
MAX_MEDIA_KEY_STATUS_VALUE_LEN   256 媒体密钥状态值的最大长度。
DRM_UUID_LEN   16 DRM解决方案的UUID长度。
MAX_PSSH_DATA_LEN   2048 PSSH(Protected System Specific Header)信息的最大长度。
MAX_PSSH_INFO_COUNT   8 PSSH(Protected System Specific Header)信息的最大数量。
MAX_MEDIA_KEY_SYSTEM_NAME_LEN   128 MediaKeySystem名称的最大长度。
MAX_MEDIA_KEY_SYSTEM_NUM   8 MediaKeySystem的最大数量。

类型定义

名称 描述
typedef enum DRM_EventType DRM_EventType 监听事件类型。
typedef enum DRM_ContentProtectionLevel DRM_ContentProtectionLevel 内容保护级别。
typedef enum DRM_MediaKeyType DRM_MediaKeyType 媒体密钥类型。
typedef enum DRM_MediaKeyRequestType DRM_MediaKeyRequestType 媒体密钥请求类型。
typedef enum DRM_OfflineMediaKeyStatus DRM_OfflineMediaKeyStatus 离线媒体密钥状态。
typedef enum DRM_CertificateStatus DRM_CertificateStatus 设备DRM证书状态。
typedef struct DRM_MediaKeyRequestInfo DRM_MediaKeyRequestInfo 媒体密钥请求信息。
typedef struct DRM_MediaKeyRequest DRM_MediaKeyRequest 媒体密钥请求。
typedef struct DRM_Statistics DRM_Statistics MediaKeySystem的度量记录。
typedef struct DRM_OfflineMediakeyIdArray DRM_OfflineMediakeyIdArray 离线媒体密钥标识列表。
typedef struct DRM_KeysInfo DRM_KeysInfo 媒体密钥信息。
typedef struct DRM_MediaKeyStatus DRM_MediaKeyStatus 媒体密钥状态。
typedef struct DRM_PsshInfo DRM_PsshInfo DRM内容保护系统专用头(Protection System Specific Header)信息。
typedef struct DRM_MediaKeySystemInfo DRM_MediaKeySystemInfo 加密媒体内容的DRM信息。
typedef struct DRM_MediaKeySystemDescription DRM_MediaKeySystemDescription DRM解决方案名称及其UUID的列表。
typedef void(* DRM_MediaKeySystemInfoCallback) (DRM_MediaKeySystemInfo *mediaKeySystemInfo) MediakeySystem信息的回调函数。
typedef struct MediaKeySystem MediaKeySystem MediaKeySystem结构。
typedef struct MediaKeySession MediaKeySession MediaKeySession结构。
typedef enum Drm_ErrCode Drm_ErrCode DRM错误码。
typedef Drm_ErrCode(* MediaKeySession_EventCallback) (DRM_EventType eventType, uint8_t *info, int32_t infoLen, char *extra) MediaKeySession事件回调函数,不返回MediaKeySession实例,适用于单个媒体解密的场景。
typedef Drm_ErrCode(* MediaKeySession_KeyChangeCallback) (DRM_KeysInfo *keysInfo, bool newKeysAvailable) MediaKeySession密钥变换回调函数,不返回MediaKeySession实例,适用于单个媒体解密的场景。
typedef struct MediaKeySession_Callback MediaKeySession_Callback MediaKeySession_Callback结构体,适用于单个媒体解密的场景。
typedef Drm_ErrCode(* OH_MediaKeySession_EventCallback) (MediaKeySession *mediaKeySession, DRM_EventType eventType, uint8_t *info, int32_t infoLen, char *extra) MediaKeySession事件回调函数,返回MediaKeySession实例,适用于多个媒体解密的场景。
typedef Drm_ErrCode(* OH_MediaKeySession_KeyChangeCallback) (MediaKeySession *mediaKeySession, DRM_KeysInfo *keysInfo, bool newKeysAvailable) MediaKeySession密钥变换回调函数,返回MediaKeySession实例,适用于多个媒体解密的场景。
typedef struct OH_MediaKeySession_Callback OH_MediaKeySession_Callback OH_MediaKeySession_Callback结构体,适用多个媒体解密的场景。
typedef Drm_ErrCode(* MediaKeySystem_Callback) (DRM_EventType eventType, uint8_t *info, int32_t infoLen, char *extra) MediaKeySystem事件回调函数,不返回MediaKeySystem实例,适用于单个MediaKeySystem实例的场景。
typedef Drm_ErrCode(* OH_MediaKeySystem_Callback) (MediaKeySystem *mediaKeySystem, DRM_EventType eventType, uint8_t *info, int32_t infoLen, char *extra) MediaKeySystem事件回调函数,返回MediaKeySystem实例,适用于多个MediaKeySystem实例的场景。

枚举

名称 描述
DRM_EventType {
EVENT_DRM_BASE = 200,
EVENT_PROVISION_REQUIRED = 201,
EVENT_KEY_REQUIRED = 202,
EVENT_KEY_EXPIRED = 203,
EVENT_VENDOR_DEFINED = 204,
EVENT_EXPIRATION_UPDATE = 206
}
事件类型。
DRM_ContentProtectionLevel {
CONTENT_PROTECTION_LEVEL_UNKNOWN = 0,
CONTENT_PROTECTION_LEVEL_SW_CRYPTO,
CONTENT_PROTECTION_LEVEL_HW_CRYPTO,
CONTENT_PROTECTION_LEVEL_ENHANCED_HW_CRYPTO,
CONTENT_PROTECTION_LEVEL_MAX
}
内容保护级别。
DRM_MediaKeyType {
MEDIA_KEY_TYPE_OFFLINE = 0,
MEDIA_KEY_TYPE_ONLINE
}
媒体密钥类型。
DRM_MediaKeyRequestType {
MEDIA_KEY_REQUEST_TYPE_UNKNOWN = 0,
MEDIA_KEY_REQUEST_TYPE_INITIAL,
MEDIA_KEY_REQUEST_TYPE_RENEWAL,
MEDIA_KEY_REQUEST_TYPE_RELEASE,
MEDIA_KEY_REQUEST_TYPE_NONE,
MEDIA_KEY_REQUEST_TYPE_UPDATE
}
媒体密钥请求类型。
DRM_OfflineMediaKeyStatus {
OFFLINE_MEDIA_KEY_STATUS_UNKNOWN = 0,
OFFLINE_MEDIA_KEY_STATUS_USABLE,
OFFLINE_MEDIA_KEY_STATUS_INACTIVE }
离线媒体密钥状态。
DRM_CertificateStatus {
CERT_STATUS_PROVISIONED = 0,
CERT_STATUS_NOT_PROVISIONED,
CERT_STATUS_EXPIRED,
CERT_STATUS_INVALID,
CERT_STATUS_UNAVAILABLE
}
设备DRM证书状态。
Drm_ErrCode {
DRM_ERR_OK = 0,
DRM_CAPI_ERR_BASE = 24700500,
DRM_ERR_NO_MEMORY = DRM_CAPI_ERR_BASE + 1,
DRM_ERR_OPERATION_NOT_PERMITTED = DRM_CAPI_ERR_BASE + 2,
DRM_ERR_INVALID_VAL = DRM_CAPI_ERR_BASE + 3,
DRM_ERR_IO = DRM_CAPI_ERR_BASE + 4,
DRM_ERR_TIMEOUT = DRM_CAPI_ERR_BASE + 5,
DRM_ERR_UNKNOWN = DRM_CAPI_ERR_BASE + 6,
DRM_ERR_SERVICE_DIED = DRM_CAPI_ERR_BASE + 7,
DRM_ERR_INVALID_STATE = DRM_CAPI_ERR_BASE + 8,
DRM_ERR_UNSUPPORTED = DRM_CAPI_ERR_BASE + 9,
DRM_ERR_MAX_SYSTEM_NUM_REACHED = DRM_CAPI_ERR_BASE + 10,
DRM_ERR_MAX_SESSION_NUM_REACHED = DRM_CAPI_ERR_BASE + 11,
DRM_ERR_EXTEND_START = DRM_CAPI_ERR_BASE + 100
}
DRM错误码。

函数

名称 描述
Drm_ErrCode OH_MediaKeySession_GenerateMediaKeyRequest (MediaKeySession *mediaKeySession, DRM_MediaKeyRequestInfo *info, DRM_MediaKeyRequest *mediaKeyRequest) 生成媒体密钥请求。
Drm_ErrCode OH_MediaKeySession_ProcessMediaKeyResponse (MediaKeySession *mediaKeySession, uint8_t *response, int32_t responseLen, uint8_t *offlineMediaKeyId, int32_t *offlineMediaKeyIdLen) 处理媒体密钥请求响应。
Drm_ErrCode OH_MediaKeySession_CheckMediaKeyStatus (MediaKeySession *mediaKeySession, DRM_MediaKeyStatus *mediaKeyStatus) 检查媒体密钥状态。
Drm_ErrCode OH_MediaKeySession_ClearMediaKeys (MediaKeySession *mediaKeySession) 清除当前会话的媒体密钥。
Drm_ErrCode OH_MediaKeySession_GenerateOfflineReleaseRequest (MediaKeySession *mediaKeySession, uint8_t *offlineMediaKeyId, int32_t offlineMediaKeyIdLen, uint8_t *releaseRequest, int32_t *releaseRequestLen) 生成离线媒体密钥释放请求。
Drm_ErrCode OH_MediaKeySession_ProcessOfflineReleaseResponse (MediaKeySession *mediaKeySession, uint8_t *offlineMediaKeyId, int32_t offlineMediaKeyIdLen, uint8_t *releaseReponse, int32_t releaseReponseLen) 处理离线媒体密钥释放响应。
Drm_ErrCode OH_MediaKeySession_RestoreOfflineMediaKeys (MediaKeySession *mediaKeySession, uint8_t *offlineMediaKeyId, int32_t offlineMediaKeyIdLen) 恢复离线媒体密钥。
Drm_ErrCode OH_MediaKeySession_GetContentProtectionLevel (MediaKeySession *mediaKeySession, DRM_ContentProtectionLevel *contentProtectionLevel) 获取会话的内容保护级别。
Drm_ErrCode OH_MediaKeySession_RequireSecureDecoderModule (MediaKeySession *mediaKeySession, const char *mimeType, bool *status) 是否需要安全解码。
Drm_ErrCode OH_MediaKeySession_SetMediaKeySessionCallback (MediaKeySession *mediaKeySession, MediaKeySession_Callback *callback) 设置MediaKeySession事件回调,适用于单个媒体解密的场景。
Drm_ErrCode OH_MediaKeySession_SetCallback (MediaKeySession *mediaKeySession, OH_MediaKeySession_Callback *callback) 设置MediaKeySession事件回调,适用于多个媒体解密的场景。
Drm_ErrCode OH_MediaKeySession_Destroy (MediaKeySession *mediaKeySession) 释放MediaKeySession。
Drm_ErrCode OH_MediaKeySystem_SetCallback (MediaKeySystem *mediaKeySystem, OH_MediaKeySystem_Callback callback) 设置MediaKeySystem事件回调。
bool OH_MediaKeySystem_IsSupported (const char *name) 判断设备是否支持指定的DRM解决方案。
bool OH_MediaKeySystem_IsSupported2 (const char *name, const char *mimeType) 判断设备是否支持指定DRM解决方案及媒体类型。
bool OH_MediaKeySystem_IsSupported3 (const char *name, const char *mimeType, DRM_ContentProtectionLevel contentProtectionLevel) 判断设备是否支持指定DRM解决方案、媒体类型以及内容保护级别。
Drm_ErrCode OH_MediaKeySystem_GetMediaKeySystems (DRM_MediaKeySystemDescription *infos, uint32_t *count) 获取设备支持的DRM解决方案信息列表。
Drm_ErrCode OH_MediaKeySystem_Create (const char *name, MediaKeySystem **mediaKeySystem) 创建MediaKeySystem实例。
Drm_ErrCode OH_MediaKeySystem_SetConfigurationString (MediaKeySystem *mediaKeySystem, const char *configName, const char *value) 设置字符串类型的配置信息。
Drm_ErrCode OH_MediaKeySystem_GetConfigurationString (MediaKeySystem *mediaKeySystem, const char *configName, char *value, int32_t valueLen) 获取字符串类型的配置属性值。
Drm_ErrCode OH_MediaKeySystem_SetConfigurationByteArray (MediaKeySystem *mediaKeySystem, const char *configName, uint8_t *value, int32_t valueLen) 设置数组类型的配置信息。
Drm_ErrCode OH_MediaKeySystem_GetConfigurationByteArray (MediaKeySystem *mediaKeySystem, const char *configName, uint8_t *value, int32_t *valueLen) 按字符数组类型名称获取MediaKeySystem配置值。
Drm_ErrCode OH_MediaKeySystem_GetStatistics (MediaKeySystem *mediaKeySystem, DRM_Statistics *statistics) 获取MediaKeySystem度量记录。
Drm_ErrCode OH_MediaKeySystem_GetMaxContentProtectionLevel (MediaKeySystem *mediaKeySystem, DRM_ContentProtectionLevel *contentProtectionLevel) 获取当前DRM解决方案支持的最大内容保护级别。
Drm_ErrCode OH_MediaKeySystem_SetMediaKeySystemCallback (MediaKeySystem *mediaKeySystem, MediaKeySystem_Callback callback) 设置MediaKeySystem事件回调。
Drm_ErrCode OH_MediaKeySystem_CreateMediaKeySession (MediaKeySystem *mediaKeySystem, DRM_ContentProtectionLevel *level, MediaKeySession **mediaKeySession) 创建媒体密钥会话实例。
Drm_ErrCode OH_MediaKeySystem_GenerateKeySystemRequest (MediaKeySystem *mediaKeySystem, uint8_t *request, int32_t *requestLen, char *defaultUrl, int32_t defaultUrlLen) 生成设备DRM请求。
Drm_ErrCode OH_MediaKeySystem_ProcessKeySystemResponse (MediaKeySystem *mediaKeySystem, uint8_t *response, int32_t responseLen) 处理设备DRM证书请求响应。
Drm_ErrCode OH_MediaKeySystem_GetOfflineMediaKeyIds (MediaKeySystem *mediaKeySystem, DRM_OfflineMediakeyIdArray *offlineMediaKeyIds) 获取离线媒体密钥标识列表。
Drm_ErrCode OH_MediaKeySystem_GetOfflineMediaKeyStatus (MediaKeySystem *mediaKeySystem, uint8_t *offlineMediaKeyId, int32_t offlineMediaKeyIdLen, DRM_OfflineMediaKeyStatus *status) 获取离线媒体密钥状态。
Drm_ErrCode OH_MediaKeySystem_ClearOfflineMediaKeys (MediaKeySystem *mediaKeySystem, uint8_t *offlineMediaKeyId, int32_t offlineMediaKeyIdLen) 清除离线媒体密钥。
Drm_ErrCode OH_MediaKeySystem_GetCertificateStatus (MediaKeySystem *mediaKeySystem, DRM_CertificateStatus *certStatus) 获取设备DRM证书状态。
Drm_ErrCode OH_MediaKeySystem_Destroy (MediaKeySystem *mediaKeySystem) 销毁MediaKeySystem实例。

变量

名称 描述
DRM_MediaKeyType DRM_MediaKeyRequestInfo::type 媒体密钥请求中的密钥类型。
int32_t DRM_MediaKeyRequestInfo::initDataLen 初始数据长度。
uint8_t DRM_MediaKeyRequestInfo::initData [MAX_INIT_DATA_LEN] 初始数据。
char DRM_MediaKeyRequestInfo::mimeType [MAX_MIMETYPE_LEN] 媒体类型。
uint32_t DRM_MediaKeyRequestInfo::optionsCount 可选数据数量。
char DRM_MediaKeyRequestInfo::optionName [MAX_MEDIA_KEY_REQUEST_OPTION_COUNT][MAX_MEDIA_KEY_REQUEST_OPTION_NAME_LEN] 可选数据名称数组。
char DRM_MediaKeyRequestInfo::optionData [MAX_MEDIA_KEY_REQUEST_OPTION_COUNT][MAX_MEDIA_KEY_REQUEST_OPTION_DATA_LEN] 可选数据数组。
DRM_MediaKeyRequestType DRM_MediaKeyRequest::type 媒体密钥请求类型。
int32_t DRM_MediaKeyRequest::dataLen 媒体密钥请求数据长度。
uint8_t DRM_MediaKeyRequest::data [MAX_MEDIA_KEY_REQUEST_DATA_LEN] 媒体密钥请求数据。
char DRM_MediaKeyRequest::defaultUrl [MAX_DEFAULT_URL_LEN] DRM服务URL。
uint32_t DRM_Statistics::statisticsCount 度量记录数量。
char DRM_Statistics::statisticsName [MAX_STATISTICS_COUNT][MAX_STATISTICS_NAME_LEN] 度量记录名称数组。
char DRM_Statistics::statisticsDescription [MAX_STATISTICS_COUNT][MAX_STATISTICS_BUFFER_LEN] 度量记录描述数组。
uint32_t DRM_OfflineMediakeyIdArray::idsCount 离线媒体密钥标识数量。
int32_t DRM_OfflineMediakeyIdArray::idsLen [MAX_OFFLINE_MEDIA_KEY_ID_COUNT] 离线媒体密钥标识长度集合。
uint8_t DRM_OfflineMediakeyIdArray::ids [MAX_OFFLINE_MEDIA_KEY_ID_COUNT][MAX_OFFLINE_MEDIA_KEY_ID_LEN] 离线媒体密钥标识集合。
uint32_t DRM_KeysInfo::keysInfoCount 密钥信息中的媒体密钥数量。
uint8_t DRM_KeysInfo::keyId [MAX_KEY_INFO_COUNT][MAX_KEY_ID_LEN] 离线媒体密钥标识集合。
char DRM_KeysInfo::statusValue [MAX_KEY_INFO_COUNT][MAX_KEY_STATUS_VALUE_LEN] 密钥信息中的媒体密钥状态值。
uint32_t DRM_MediaKeyStatus::statusCount 媒体密钥状态数量。
char DRM_MediaKeyStatus::statusName [MAX_MEDIA_KEY_STATUS_COUNT][MAX_MEDIA_KEY_STATUS_NAME_LEN] 媒体密钥状态名称数组。
char DRM_MediaKeyStatus::statusValue [MAX_MEDIA_KEY_STATUS_COUNT][MAX_MEDIA_KEY_STATUS_VALUE_LEN] 媒体密钥状态值数组。
uint8_t DRM_PsshInfo::uuid [DRM_UUID_LEN] DRM解决方案唯一标识。
int32_t DRM_PsshInfo::dataLen PSSH(Protected System Specific Header)信息长度。
uint8_t DRM_PsshInfo::data [MAX_PSSH_DATA_LEN] PSSH(Protected System Specific Header)信息。
uint32_t DRM_MediaKeySystemInfo::psshCount PSSH(Protected System Specific Header)信息数量。
DRM_PsshInfo DRM_MediaKeySystemInfo::psshInfo [MAX_PSSH_INFO_COUNT] PSSH(Protected System Specific Header)信息。
char DRM_MediaKeySystemDescription::name [MAX_MEDIA_KEY_SYSTEM_NAME_LEN] DRM解决方案的名称。
uint8_t DRM_MediaKeySystemDescription::uuid [DRM_UUID_LEN] DRM解决方案唯一标识。
MediaKeySession_EventCallback MediaKeySession_Callback::eventCallback MediaKeySession事件回调,如密钥过期等。
MediaKeySession_KeyChangeCallback MediaKeySession_Callback::keyChangeCallback 密钥变换事件的密钥变换回调。
OH_MediaKeySession_EventCallback OH_MediaKeySession_Callback::eventCallback MediaKeySession事件回调,如密钥过期等。
OH_MediaKeySession_KeyChangeCallback OH_MediaKeySession_Callback::keyChangeCallback 密钥变换事件的密钥变换回调。

宏定义说明

DRM_UUID_LEN

#define DRM_UUID_LEN   16

描述

DRM解决方案唯一标识长度。

起始版本: 11

MAX_DEFAULT_URL_LEN

#define MAX_DEFAULT_URL_LEN   2048

描述

DRM服务的URL最大长度。

起始版本: 11

MAX_INIT_DATA_LEN

#define MAX_INIT_DATA_LEN   2048

描述

媒体密钥请求初始化数据的最大长度。

起始版本: 11

MAX_KEY_ID_LEN

#define MAX_KEY_ID_LEN   16

描述

媒体密钥标识的最大长度。

起始版本: 11

MAX_KEY_INFO_COUNT

#define MAX_KEY_INFO_COUNT   64

描述

媒体密钥信息的最大数量。

起始版本: 11

MAX_KEY_STATUS_VALUE_LEN

#define MAX_KEY_STATUS_VALUE_LEN   128

描述

媒体密钥状态值的最大长度。

起始版本: 11

MAX_MEDIA_KEY_REQUEST_DATA_LEN

#define MAX_MEDIA_KEY_REQUEST_DATA_LEN   8192

描述

媒体密钥请求的最大长度。

起始版本: 11

MAX_MEDIA_KEY_REQUEST_OPTION_COUNT

#define MAX_MEDIA_KEY_REQUEST_OPTION_COUNT   16

描述

媒体密钥请求中可选数据的最大数量。

起始版本: 11

MAX_MEDIA_KEY_REQUEST_OPTION_DATA_LEN

#define MAX_MEDIA_KEY_REQUEST_OPTION_DATA_LEN   128

描述

媒体密钥请求中可选数据的最大长度。

起始版本: 11

MAX_MEDIA_KEY_REQUEST_OPTION_NAME_LEN

#define MAX_MEDIA_KEY_REQUEST_OPTION_NAME_LEN   64

描述

媒体密钥请求中可选数据名称的最大长度。

起始版本: 11

MAX_MEDIA_KEY_STATUS_COUNT

#define MAX_MEDIA_KEY_STATUS_COUNT   64

描述

媒体密钥状态的最大数量。

起始版本: 11

MAX_MEDIA_KEY_STATUS_NAME_LEN

#define MAX_MEDIA_KEY_STATUS_NAME_LEN   64

描述

媒体密钥状态名称的最大长度。

起始版本: 11

MAX_MEDIA_KEY_STATUS_VALUE_LEN

#define MAX_MEDIA_KEY_STATUS_VALUE_LEN   256

描述

媒体密钥状态值的最大长度。

起始版本: 11

MAX_MEDIA_KEY_SYSTEM_NAME_LEN

#define MAX_MEDIA_KEY_SYSTEM_NAME_LEN   128

描述

DRM解决方案名称的最大长度。

起始版本: 12

MAX_MEDIA_KEY_SYSTEM_NUM

#define MAX_MEDIA_KEY_SYSTEM_NUM   8

描述

支持的DRM解决方案的最大数量。

起始版本: 12

MAX_MIMETYPE_LEN

#define MAX_MIMETYPE_LEN   64

描述

媒体类型的最大长度。

起始版本: 11

MAX_OFFLINE_MEDIA_KEY_ID_COUNT

#define MAX_OFFLINE_MEDIA_KEY_ID_COUNT   512

描述

离线媒体密钥标识的最大数量。

起始版本: 11

MAX_OFFLINE_MEDIA_KEY_ID_LEN

#define MAX_OFFLINE_MEDIA_KEY_ID_LEN   64

描述

离线媒体密钥标识的最大长度。

起始版本: 11

MAX_PSSH_DATA_LEN

#define MAX_PSSH_DATA_LEN   2048

描述

PSSH(Protected System Specific Header)信息的最大长度。

起始版本: 11

MAX_PSSH_INFO_COUNT

#define MAX_PSSH_INFO_COUNT   8

描述

PSSH(Protected System Specific Header)信息的最大数量。

起始版本: 11

MAX_STATISTICS_BUFFER_LEN

#define MAX_STATISTICS_BUFFER_LEN   256

描述

度量记录缓冲区的最大长度。

起始版本: 11

MAX_STATISTICS_COUNT

#define MAX_STATISTICS_COUNT   10

描述

度量记录的最大数量。

起始版本: 11

MAX_STATISTICS_NAME_LEN

#define MAX_STATISTICS_NAME_LEN   64

描述

度量记录名称的最大长度。

起始版本: 11

类型定义说明

DRM_CertificateStatus

typedef enum DRM_CertificateStatus DRM_CertificateStatus

描述

设备DRM证书状态类型。

系统能力: SystemCapability.Multimedia.Drm.Core

起始版本: 11

DRM_ContentProtectionLevel

typedef enum DRM_ContentProtectionLevel DRM_ContentProtectionLevel

描述

内容保护级别类型。

系统能力: SystemCapability.Multimedia.Drm.Core

起始版本: 11

Drm_ErrCode

typedef enum Drm_ErrCode Drm_ErrCode

描述

DRM错误码。

系统能力: SystemCapability.Multimedia.Drm.Core

起始版本: 11

DRM_EventType

typedef enum DRM_EventType DRM_EventType

描述

监听事件类型。

起始版本: 11

DRM_KeysInfo

typedef struct DRM_KeysInfo DRM_KeysInfo

描述

媒体密钥信息。

起始版本: 11

DRM_MediaKeyRequest

typedef struct DRM_MediaKeyRequest DRM_MediaKeyRequest

描述

媒体密钥请求。

起始版本: 11

DRM_MediaKeyRequestInfo

typedef struct DRM_MediaKeyRequestInfo DRM_MediaKeyRequestInfo

描述

媒体密钥请求信息。

起始版本: 11

DRM_MediaKeyRequestType

typedef enum DRM_MediaKeyRequestType DRM_MediaKeyRequestType

描述

媒体密钥请求类型。

系统能力: SystemCapability.Multimedia.Drm.Core

起始版本: 11

DRM_MediaKeyStatus

typedef struct DRM_MediaKeyStatus DRM_MediaKeyStatus

描述

媒体密钥状态。

起始版本: 11

DRM_MediaKeySystemDescription

typedef struct DRM_MediaKeySystemDescription DRM_MediaKeySystemDescription

描述

DRM解决方案的名称和唯一标识列表。

起始版本: 12

DRM_MediaKeySystemInfo

typedef struct DRM_MediaKeySystemInfo DRM_MediaKeySystemInfo

描述

播放器从媒体源获取的DRM信息。

起始版本: 11

DRM_MediaKeySystemInfoCallback

typedef void(* DRM_MediaKeySystemInfoCallback) (DRM_MediaKeySystemInfo *mediaKeySystemInfo)

描述

应用程序为从媒体源获取DRM信息而设置的回调。

起始版本: 11

参数:

名称 描述
mediaKeySystemInfo 从媒体源获取的DRM信息。

DRM_MediaKeyType

typedef enum DRM_MediaKeyType DRM_MediaKeyType

描述

媒体密钥类型。

系统能力: SystemCapability.Multimedia.Drm.Core

起始版本: 11

DRM_OfflineMediakeyIdArray

typedef struct DRM_OfflineMediakeyIdArray DRM_OfflineMediakeyIdArray

描述

离线媒体密钥标识数组。

起始版本: 11

DRM_OfflineMediaKeyStatus

typedef enum DRM_OfflineMediaKeyStatus DRM_OfflineMediaKeyStatus

描述

离线媒体密钥状态。

系统能力: SystemCapability.Multimedia.Drm.Core

起始版本: 11

DRM_PsshInfo

typedef struct DRM_PsshInfo DRM_PsshInfo

描述

包含DRM解决方案唯一标识的PSSH(Protected System Specific Header)信息结构。

起始版本: 11

DRM_Statistics

typedef struct DRM_Statistics DRM_Statistics

描述

DRM的度量记录。

起始版本: 11

MediaKeySession

typedef struct MediaKeySession MediaKeySession

描述

媒体密钥会话结构。

起始版本: 11

MediaKeySession_Callback

typedef struct MediaKeySession_Callback MediaKeySession_Callback

描述

MediaKeySession_Callback结构体,用于监听密钥过期等事件,不返回媒体密钥会话实例,适用于单媒体密钥会话解密场景。

起始版本: 11

MediaKeySession_EventCallback

typedef Drm_ErrCode(* MediaKeySession_EventCallback) (DRM_EventType eventType, uint8_t *info, int32_t infoLen, char *extra)

描述

MediaKeySession事件触发时将调用的回调,如密钥过期事件。

起始版本: 11

参数:

名称 描述
eventType 事件类型。
info 从媒体密钥会话获取的事件信息。
infoLen 事件信息长度。
extra 从媒体密钥会话中获得的额外信息。

返回:

Drm_ErrCode 错误码。

MediaKeySession_KeyChangeCallback

typedef Drm_ErrCode(* MediaKeySession_KeyChangeCallback) (DRM_KeysInfo *keysInfo, bool newKeysAvailable)

描述

密钥变换时将调用回调。

起始版本: 11

参数:

名称 描述
keysInfo 密钥信息。
newKeysAvailable 新密钥是否可用。

返回:

当参数检查失败时返回DRM_ERR_INVALID_VAL,当函数调用成功时返回DRM_ERR_OK。

MediaKeySystem

typedef struct MediaKeySystem MediaKeySystem

描述

MediaKeySystem结构。

起始版本: 11

MediaKeySystem_Callback

typedef Drm_ErrCode(* MediaKeySystem_Callback) (DRM_EventType eventType, uint8_t *info, int32_t infoLen, char *extra)

描述

MediaKeySystem事件触发时将调用的回调,不返回MediaKeySystem实例,适用于单个MediaKeySystem场景。

起始版本: 11

参数:

名称 描述
eventType 事件类型。
info 事件信息。
infoLen 事件信息长度。
extra 增量信息。

返回:

函数结果代码Drm_ErrCode: - DRM_ERR_OK:执行成功; - DRM_ERR_INVALID_VAL:输入参数无效。

OH_MediaKeySession_Callback

typedef struct OH_MediaKeySession_CallbackOH_MediaKeySession_Callback

描述

OH_MediaKeySession_Callback结构体,用于监听密钥过期等事件,返回媒体密钥会话实例,适用多个媒体密钥会话解密场景。

起始版本: 12

OH_MediaKeySession_EventCallback

typedef Drm_ErrCode(* OH_MediaKeySession_EventCallback) (MediaKeySession *mediaKeySession, DRM_EventType eventType, uint8_t *info, int32_t infoLen, char *extra)

描述

MediaKeySystem事件触发时将调用的回调。

起始版本: 12

参数:

名称 描述
mediaKeySession 会话实例。
eventType 事件类型。
info 事件信息。
infoLen 事件信息长度。
extra 增量信息。

返回:

Drm_ErrCode 错误码。

OH_MediaKeySession_KeyChangeCallback

typedef Drm_ErrCode(* OH_MediaKeySession_KeyChangeCallback) (MediaKeySession *mediaKeySession, DRM_KeysInfo *keysInfo, bool newKeysAvailable)

描述

密钥变换时将调用的回调。

起始版本: 12

参数:

名称 描述
mediaKeySession 媒体密钥会话实例。
keysInfo 密钥信息。
newKeysAvailable 新密钥是否可用,true表示可用,false表示不可用。

返回:

当参数检查失败时返回DRM_ERR_INVALID_VAL,当函数调用成功时返回DRM_ERR_OK。

OH_MediaKeySystem_Callback

typedef Drm_ErrCode(* OH_MediaKeySystem_Callback) (MediaKeySystem *mediaKeySystem, DRM_EventType eventType, uint8_t *info, int32_t infoLen, char *extra)

描述

MediaKeySystem事件触发时将调用的回调,返回MediaKeySystem实例,适用于多个MediaKeySystem场景。

起始版本: 12

参数:

名称 描述
mediaKeySystem MediaKeySystem实例。
eventType 事件类型。
info 事件信息。
infoLen 事件信息长度。
extra 增量信息。

返回:

函数结果代码Drm_ErrCode: - DRM_ERR_OK:执行成功; - DRM_ERR_INVALID_VAL:输入参数无效。

枚举类型说明

DRM_CertificateStatus

enum DRM_CertificateStatus

描述

设备DRM证书状态类型。

系统能力: SystemCapability.Multimedia.Drm.Core

起始版本: 11

枚举值 描述
CERT_STATUS_PROVISIONED 设备已安装设备DRM证书。
CERT_STATUS_NOT_PROVISIONED 设备未安装设备DRM证书或证书状态异常。
CERT_STATUS_EXPIRED 设备DRM证书过期。
CERT_STATUS_INVALID 设备DRM证书无效。
CERT_STATUS_UNAVAILABLE 设备DRM证书不可用。

DRM_ContentProtectionLevel

enum DRM_ContentProtectionLevel

描述

内容保护级别类型。

系统能力: SystemCapability.Multimedia.Drm.Core

起始版本: 11

枚举值 描述
CONTENT_PROTECTION_LEVEL_UNKNOWN 未知/默认安全级别。
CONTENT_PROTECTION_LEVEL_SW_CRYPTO 软件安全级别。
CONTENT_PROTECTION_LEVEL_HW_CRYPTO 硬件安全级别。
CONTENT_PROTECTION_LEVEL_ENHANCED_HW_CRYPTO 硬件增强级别。
CONTENT_PROTECTION_LEVEL_MAX 最大安全级别。

Drm_ErrCode

enum Drm_ErrCode

描述

DRM错误码。

系统能力: SystemCapability.Multimedia.Drm.Core

起始版本: 11

枚举值 描述
DRM_ERR_OK 操作成功完成。
DRM_CAPI_ERR_BASE 基础错误。
DRM_ERR_NO_MEMORY 内存不足。
DRM_ERR_OPERATION_NOT_PERMITTED 不允许的操作。
DRM_ERR_INVALID_VAL 无效参数。
DRM_ERR_IO IO错误。
DRM_ERR_TIMEOUT 网络超时。
DRM_ERR_UNKNOWN 未知错误。
DRM_ERR_SERVICE_DIED drm服务死亡。
DRM_ERR_INVALID_STATE 无效的操作状态。
DRM_ERR_UNSUPPORTED 不支持的操作。
DRM_ERR_MAX_SYSTEM_NUM_REACHED MediaKeySystem最大实例数。
DRM_ERR_MAX_SESSION_NUM_REACHED MediaKeySession最大实例数。
DRM_ERR_EXTEND_START 扩展错误。

DRM_EventType

enum DRM_EventType

描述

监听事件类型。

起始版本: 11

枚举值 描述
EVENT_DRM_BASE DRM基础事件。
EVENT_PROVISION_REQUIRED 设备DRM证书请求事件。
EVENT_KEY_REQUIRED 密钥请求事件。
EVENT_KEY_EXPIRED 密钥过期事件。
EVENT_VENDOR_DEFINED DRM解决方案自定义事件。
EVENT_EXPIRATION_UPDATE 密钥过期更新事件。

DRM_MediaKeyRequestType

enum DRM_MediaKeyRequestType

描述

媒体密钥请求类型。

系统能力: SystemCapability.Multimedia.Drm.Core

起始版本: 11

枚举值 描述
MEDIA_KEY_REQUEST_TYPE_UNKNOWN 未知请求类型。
MEDIA_KEY_REQUEST_TYPE_INITIAL 初始化请求。
MEDIA_KEY_REQUEST_TYPE_RENEWAL 续订请求。
MEDIA_KEY_REQUEST_TYPE_RELEASE 释放请求。
MEDIA_KEY_REQUEST_TYPE_NONE 无请求。
MEDIA_KEY_REQUEST_TYPE_UPDATE 更新请求。

DRM_MediaKeyType

enum DRM_MediaKeyType

描述

媒体密钥类型。

系统能力: SystemCapability.Multimedia.Drm.Core

起始版本: 11

枚举值 描述
MEDIA_KEY_TYPE_OFFLINE 离线。
MEDIA_KEY_TYPE_ONLINE 在线。

DRM_OfflineMediaKeyStatus

enum DRM_OfflineMediaKeyStatus

描述

离线媒体密钥状态。

系统能力: SystemCapability.Multimedia.Drm.Core

起始版本: 11

枚举值 描述
OFFLINE_MEDIA_KEY_STATUS_UNKNOWN 未知状态。
OFFLINE_MEDIA_KEY_STATUS_USABLE 可用状态。
OFFLINE_MEDIA_KEY_STATUS_INACTIVE 失活状态。

函数说明

OH_MediaKeySession_CheckMediaKeyStatus()

Drm_ErrCode OH_MediaKeySession_CheckMediaKeyStatus (MediaKeySession *mediaKeySession, DRM_MediaKeyStatus *mediaKeyStatus)

描述

检查媒体密钥状态。

起始版本: 11

参数:

名称 描述
mediaKeySession MediaKeySession实例。
mediaKeyStatus 媒体密钥状态。

返回:

函数结果代码Drm_ErrCode: - DRM_ERR_OK:执行成功; - DRM_ERR_NO_MEMORY:内存不足,内存分配失败; - DRM_ERR_INVALID_VAL:输入参数mediaKeySession为空指针或无效,或输入参数mediaKeyStatus为空指针; - DRM_ERR_UNKNOWN:发生内部错误,请查看日志详细信息。

OH_MediaKeySession_ClearMediaKeys()

Drm_ErrCode OH_MediaKeySession_ClearMediaKeys (MediaKeySession *mediaKeySession)

描述

清除当前会话的媒体密钥。

起始版本: 11

参数:

名称 描述
mediaKeySession MediaKeySession实例。

返回:

函数结果代码Drm_ErrCode: - DRM_ERR_OK:执行成功; - DRM_ERR_INVALID_VAL:输入参数mediaKeySession为空指针或无效; - DRM_ERR_UNKNOWN:发生内部错误,请查看日志详细信息。

OH_MediaKeySession_Destroy()

Drm_ErrCode OH_MediaKeySession_Destroy (MediaKeySession *mediaKeySession)

描述

销毁MediaKeySession实例。

起始版本: 11

参数:

名称 描述
mediaKeySession MediaKeySession实例。

返回:

函数结果代码Drm_ErrCode: - DRM_ERR_OK:执行成功; - DRM_ERR_INVALID_VAL:输入参数mediaKeySession为空指针或无效; - DRM_ERR_UNKNOWN:发生内部错误,请查看日志详细信息。

OH_MediaKeySession_GenerateMediaKeyRequest()

Drm_ErrCode OH_MediaKeySession_GenerateMediaKeyRequest (MediaKeySession *mediaKeySession, DRM_MediaKeyRequestInfo *info, DRM_MediaKeyRequest *mediaKeyRequest)

描述

生成媒体密钥请求。

起始版本: 11

参数:

名称 描述
mediaKeySession MediaKeySession实例。
info 媒体密钥请求信息。
mediaKeyRequest 媒体密钥请求。

返回:

函数结果代码Drm_ErrCode: - DRM_ERR_OK:执行成功; - DRM_ERR_NO_MEMORY:内存不足,内存分配失败; - DRM_ERR_INVALID_VAL:输入参数mediaKeySession为空指针或无效,或输入参数info为空指针,或输入参数mediaKeyRequest为空指针; - DRM_ERR_UNKNOWN:发生内部错误,请查看日志详细信息。

OH_MediaKeySession_GenerateOfflineReleaseRequest()

Drm_ErrCode OH_MediaKeySession_GenerateOfflineReleaseRequest (MediaKeySession *mediaKeySession, uint8_t *offlineMediaKeyId, int32_t offlineMediaKeyIdLen, uint8_t *releaseRequest, int32_t *releaseRequestLen)

描述

生成离线媒体密钥释放请求。

起始版本: 11

参数:

名称 描述
mediaKeySession MediaKeySession实例。
offlineMediaKeyId 离线媒体密钥标识。
offlineMediaKeyIdLen 离线媒体密钥标识长度。
releaseRequest 离线媒体密钥释放请求。
releaseRequestLen 离线媒体密钥释放请求长度。

返回:

函数结果代码Drm_ErrCode: - DRM_ERR_OK:执行成功; - DRM_ERR_NO_MEMORY:内存不足,内存分配失败; - DRM_ERR_INVALID_VAL:输入参数mediaKeySession为空指针或无效,或其它指针类型输入参数为空指针; - DRM_ERR_UNKNOWN:发生内部错误或设备上的DRM解决方案不支持离线媒体密钥释放,请查看日志详细信息。

OH_MediaKeySession_GetContentProtectionLevel()

Drm_ErrCode OH_MediaKeySession_GetContentProtectionLevel (MediaKeySession *mediaKeySession, DRM_ContentProtectionLevel *contentProtectionLevel)

描述

获取会话的内容保护级别。

起始版本: 11

参数:

名称 描述
mediaKeySession MediaKeySession例。
contentProtectionLevel 内容保护级别。

返回:

函数结果代码Drm_ErrCode: - DRM_ERR_OK:执行成功; - DRM_ERR_INVALID_VAL:输入参数mediaKeySession为空指针或无效,或输入参数contentProtectionLevel为空指针; - DRM_ERR_UNKNOWN:发生内部错误,请查看日志详细信息。

OH_MediaKeySession_ProcessMediaKeyResponse()

Drm_ErrCode OH_MediaKeySession_ProcessMediaKeyResponse (MediaKeySession *mediaKeySession, uint8_t *response, int32_t responseLen, uint8_t *offlineMediaKeyId, int32_t *offlineMediaKeyIdLen)

描述

处理媒体密钥请求响应。

起始版本: 11

参数:

名称 描述
mediaKeySession MediaKeySession实例。
response 媒体密钥请求响应。
responseLen 媒体密钥请求响应长度。
offlineMediaKeyId 离线媒体密钥标识。
offlineMediaKeyIdLen 离线媒体密钥标识的长度。

返回:

函数结果代码Drm_ErrCode: - DRM_ERR_OK:执行成功; - DRM_ERR_NO_MEMORY:内存不足,内存分配失败; - DRM_ERR_INVALID_VAL:输入参数mediaKeySession为空指针或无效,或其它指针类型输入参数为空指针; - DRM_ERR_UNKNOWN:发生内部错误,请查看日志详细信息。

OH_MediaKeySession_ProcessOfflineReleaseResponse()

Drm_ErrCode OH_MediaKeySession_ProcessOfflineReleaseResponse (MediaKeySession *mediaKeySession, uint8_t *offlineMediaKeyId, int32_t offlineMediaKeyIdLen, uint8_t *releaseReponse, int32_t releaseReponseLen)

描述

处理离线媒体密钥释放请求响应。

起始版本: 11

参数:

名称 描述
mediaKeySession MediaKeySession实例。
offlineMediaKeyId 离线媒体密钥标识。
offlineMediaKeyIdLen 离线媒体密钥标识长度。
releaseReponse 媒体密钥释放请求响应。
releaseReponseLen 媒体密钥释放请求响应长度。

返回:

函数结果代码Drm_ErrCode: - DRM_ERR_OK:执行成功; - DRM_ERR_INVALID_VAL:输入参数mediaKeySession为空指针或无效,或其它指针类型输入参数为空指针; - DRM_ERR_UNKNOWN:发生内部错误或设备上的DRM解决方案不支持离线媒体密钥释放,请查看日志详细信息。

OH_MediaKeySession_RequireSecureDecoderModule()

Drm_ErrCode OH_MediaKeySession_RequireSecureDecoderModule (MediaKeySession *mediaKeySession, const char *mimeType, bool *status)

描述

是否需要安全解码。

起始版本: 11

参数:

名称 描述
mediaKeySession MediaKeySession实例。
mimeType 媒体类型,支持的媒体类型取决于DRM解决方案,如:video/avc、video/hev。
status 安全解码模块状态。

返回:

函数结果代码Drm_ErrCode: - DRM_ERR_OK:执行成功; - DRM_ERR_INVALID_VAL:输入参数mediaKeySession为空指针或无效,或其它指针类型输入参数为空指针; - DRM_ERR_UNKNOWN:发生内部错误,请查看日志详细信息。

OH_MediaKeySession_RestoreOfflineMediaKeys()

Drm_ErrCode OH_MediaKeySession_RestoreOfflineMediaKeys (MediaKeySession *mediaKeySession, uint8_t *offlineMediaKeyId, int32_t offlineMediaKeyIdLen)

描述

恢复线媒体密钥到当前会话。

起始版本: 11

参数:

名称 描述
mediaKeySession MediaKeySession实例。
offlineMediaKeyId 离线媒体密钥标识。
offlineMediaKeyIdLen 离线媒体密钥标识长度。

返回:

函数结果代码Drm_ErrCode: - DRM_ERR_OK:执行成功; - DRM_ERR_INVALID_VAL:输入参数mediaKeySession为空指针或无效,或其它指针类型输入参数为空指针; - DRM_ERR_UNKNOWN:发生内部错误,请查看日志详细信息。

OH_MediaKeySession_SetCallback()

Drm_ErrCode OH_MediaKeySession_SetCallback (MediaKeySession *mediaKeySession, OH_MediaKeySession_Callback *callback)

描述

设置MediaKeySession事件回调。

起始版本: 12

参数:

名称 描述
mediaKeySession MediaKeySession实例。
callback MediaKeySession的回调。

返回:

函数结果代码Drm_ErrCode: - DRM_ERR_OK:执行成功; - DRM_ERR_INVALID_VAL:输入参数mediaKeySession为空指针或无效,或输入参数callback为空指针。

OH_MediaKeySession_SetMediaKeySessionCallback()

Drm_ErrCode OH_MediaKeySession_SetMediaKeySessionCallback (MediaKeySession *mediaKeySession, MediaKeySession_Callback *callback)

描述

设置MediaKeySession会话事件回调。

起始版本: 11

参数:

名称 描述
mediaKeySession MediaKeySession实例。
callback MediaKeySession的回调。

返回:

函数结果代码Drm_ErrCode: - DRM_ERR_OK:执行成功; - DRM_ERR_INVALID_VAL:输入参数mediaKeySession为空指针或无效,或输入参数callback为空指针。

OH_MediaKeySystem_ClearOfflineMediaKeys()

Drm_ErrCode OH_MediaKeySystem_ClearOfflineMediaKeys (MediaKeySystem *mediaKeySystem, uint8_t *offlineMediaKeyId, int32_t offlineMediaKeyIdLen)

描述

按id清除离线媒体密钥。

起始版本: 11

参数:

名称 描述
mediaKeySystem MediaKeySystem实例。
offlineMediaKeyId 离线媒体密钥标识。
offlineMediaKeyIdLen 离线媒体密钥标识长度。

返回:

函数结果代码Drm_ErrCode: - DRM_ERR_OK:执行成功; - DRM_ERR_INVALID_VAL:输入参数mediaKeySystem为空指针或无效,或输入参数offlineMediaKeyId为空指针; - DRM_ERR_UNKNOWN:发生内部错误,请查看日志详细信息。

OH_MediaKeySystem_Create()

Drm_ErrCode OH_MediaKeySystem_Create (const char *name, MediaKeySystem **mediaKeySystem)

描述

创建MediaKeySystem实例。

起始版本: 11

参数:

名称 描述
name DRM解决方案名称。
mediaKeySystem MediaKeySystem实例。

返回:

函数结果代码Drm_ErrCode: - DRM_ERR_OK:执行成功; - DRM_ERR_INVALID_VAL:输入参数name为空指针或长度为0、输入参数mediaKeySystem为空指针; - DRM_ERR_UNKNOWN:发生内部错误,请查看日志详细信息; - DRM_ERR_SERVICE_DIED:服务死亡; - DRM_ERR_MAX_SYSTEM_NUM_REACHED:已创建的MediaKeySystem数量达到最大限制(64个)。

OH_MediaKeySystem_CreateMediaKeySession()

Drm_ErrCode OH_MediaKeySystem_CreateMediaKeySession (MediaKeySystem *mediaKeySystem, DRM_ContentProtectionLevel *level, MediaKeySession **mediaKeySession)

描述

创建MediaKeySession会话实例。

起始版本: 11

参数:

名称 描述
mediaKeySystem MediaKeySystem实例。
level 内容保护级别。
mediaKeySession MediaKeySession实例。

返回:

函数结果代码Drm_ErrCode: - DRM_ERR_OK:执行成功; - DRM_ERR_NO_MEMORY:内存不足,内存分配失败; - DRM_ERR_INVALID_VAL:输入参数mediaKeySystem为空指针或无效,或输入参数level超出合理范围,或mediaKeySession为空指针; - DRM_ERR_UNKNOWN:发生内部错误,请查看日志详细信息; - DRM_ERR_SERVICE_DIED:服务死亡; - DRM_ERR_MAX_SESSION_NUM_REACHED:当前MediaKeySystem已创建的MediaKeySession数量达到最大限制(64个)。

OH_MediaKeySystem_Destroy()

Drm_ErrCode OH_MediaKeySystem_Destroy (MediaKeySystem *mediaKeySystem)

描述

销毁MediaKeySystem实例。

起始版本: 11

参数:

名称 描述
mediaKeySystem MediaKeySystem实例。

返回:

函数结果代码Drm_ErrCode: - DRM_ERR_OK:执行成功; - DRM_ERR_INVALID_VAL:输入参数mediaKeySystem为空指针或无效; - DRM_ERR_UNKNOWN:发生内部错误,请查看日志详细信息。

OH_MediaKeySystem_GenerateKeySystemRequest()

Drm_ErrCode OH_MediaKeySystem_GenerateKeySystemRequest (MediaKeySystem *mediaKeySystem, uint8_t *request, int32_t *requestLen, char *defaultUrl, int32_t defaultUrlLen)

描述

生成设备DRM证书请求。

起始版本: 11

参数:

名称 描述
mediaKeySystem MediaKeySystem实例。
request 设备DRM证书请求。
requestLen 设备DRM证书请求的长度。
defaultUrl 设备DRM证书服务的URL。
defaultUrlLen 设备DRM证书服务的URL长度。

返回:

函数结果代码Drm_ErrCode: - DRM_ERR_OK:执行成功; - DRM_ERR_NO_MEMORY:内存不足,内存分配失败; - DRM_ERR_INVALID_VAL:输入参数mediaKeySystem为空指针或无效,或其它指针类型输入参数为空指针; - DRM_ERR_UNKNOWN:发生内部错误,请查看日志详细信息。

OH_MediaKeySystem_GetCertificateStatus()

Drm_ErrCode OH_MediaKeySystem_GetCertificateStatus (MediaKeySystem *mediaKeySystem, DRM_CertificateStatus *certStatus)

描述

获取设备DRM证书状态。

起始版本: 11

参数:

名称 描述
mediaKeySystem MediaKeySystem实例。
certStatus 设备DRM证书状态值。

返回:

函数结果代码Drm_ErrCode: - DRM_ERR_OK:执行成功; - DRM_ERR_INVALID_VAL:输入参数mediaKeySystem为空指针或无效,或输入参数certStatus为空指针; - DRM_ERR_UNKNOWN:发生内部错误,请查看日志详细信息。

OH_MediaKeySystem_GetConfigurationByteArray()

Drm_ErrCode OH_MediaKeySystem_GetConfigurationByteArray (MediaKeySystem *mediaKeySystem, const char *configName, uint8_t *value, int32_t *valueLen)

描述

获取字符数组类型配置属性值。

起始版本: 11

参数:

名称 描述
mediaKeySystem MediaKeySystem实例。
configName 字符数组类型配置属性名称,不能为空,具体支持的属性名由设备上DRM解决方案决定。
value 字符数组类型配置属性。
valueLen 字符数组类型配置属性长度。

返回:

函数结果代码Drm_ErrCode: - DRM_ERR_OK:执行成功; - DRM_ERR_NO_MEMORY:内存不足,内存分配失败; - DRM_ERR_INVALID_VAL:输入参数mediaKeySystem为空指针或无效,输入参数configName为空指针,输入参数value为空指针,或valueLen为空指针; - DRM_ERR_UNKNOWN:发生内部错误,请查看日志详细信息。

OH_MediaKeySystem_GetConfigurationString()

Drm_ErrCode OH_MediaKeySystem_GetConfigurationString (MediaKeySystem *mediaKeySystem, const char *configName, char *value, int32_t valueLen)

描述

获取字符串类型配置属性值。

起始版本: 11

参数:

名称 描述
mediaKeySystem MediaKeySystem实例。
configName 字符串类型配置名。
value 字符串类型配置值。
valueLen 字符串类型配置值长度。

返回:

函数结果代码Drm_ErrCode: - DRM_ERR_OK:执行成功; - DRM_ERR_NO_MEMORY:内存不足,内存分配失败; - DRM_ERR_INVALID_VAL:输入参数mediaKeySystem为空指针或无效,输入参数configName为空指针,或输入参数value为空指针; - DRM_ERR_UNKNOWN:发生内部错误,请查看日志详细信息。

OH_MediaKeySystem_GetMaxContentProtectionLevel()

Drm_ErrCode OH_MediaKeySystem_GetMaxContentProtectionLevel (MediaKeySystem *mediaKeySystem, DRM_ContentProtectionLevel *contentProtectionLevel)

描述

获取设备支持的最大内容保护级别。

起始版本: 11

参数:

名称 描述
mediaKeySystem MediaKeySystem实例。
contentProtectionLevel 内容保护级别。

返回:

函数结果代码Drm_ErrCode: - DRM_ERR_OK:执行成功; - DRM_ERR_INVALID_VAL:输入参数mediaKeySystem为空指针或无效,或输入参数contentProtectionLevel为空指针; - DRM_ERR_UNKNOWN:发生内部错误,请查看日志详细信息。

OH_MediaKeySystem_GetMediaKeySystems()

Drm_ErrCode OH_MediaKeySystem_GetMediaKeySystems (DRM_MediaKeySystemDescription *infos, uint32_t *count)

描述

获取设备支持的DRM解决方案的名称和唯一标识的列表。

起始版本: 12

参数:

名称 描述
infos DRM解决方案名称和唯一标识的列表。
count DRM解决方案名称和唯一标识的列表长度。

返回:

函数结果代码Drm_ErrCode: - DRM_ERR_OK:执行成功; - DRM_ERR_INVALID_VAL:输入参数infos为空指针或输入参数count为空指针、输入参数infos长度不足; - DRM_ERR_UNKNOWN:发生内部错误,请查看日志详细信息。

OH_MediaKeySystem_GetOfflineMediaKeyIds()

Drm_ErrCode OH_MediaKeySystem_GetOfflineMediaKeyIds (MediaKeySystem *mediaKeySystem, DRM_OfflineMediakeyIdArray *offlineMediaKeyIds)

描述

获取离线媒体密钥标识列表,媒体密钥标识用于对离线媒体密钥的管理。

起始版本: 11

参数:

名称 描述
mediaKeySystem MediaKeySystem实例。
offlineMediaKeyIds 离线媒体密钥的媒体密钥标识列表。

返回:

函数结果代码Drm_ErrCode: - DRM_ERR_OK:执行成功; - DRM_ERR_NO_MEMORY:内存不足,内存分配失败; - DRM_ERR_INVALID_VAL:输入参数mediaKeySystem为空指针或无效,或输入参数offlineMediaKeyIds为空指针; - DRM_ERR_UNKNOWN:发生内部错误,请查看日志详细信息。

OH_MediaKeySystem_GetOfflineMediaKeyStatus()

Drm_ErrCode OH_MediaKeySystem_GetOfflineMediaKeyStatus (MediaKeySystem *mediaKeySystem, uint8_t *offlineMediaKeyId, int32_t offlineMediaKeyIdLen, DRM_OfflineMediaKeyStatus *status)

描述

获取离线媒体密钥状态。

起始版本: 11

参数:

名称 描述
mediaKeySystem MediaKeySystem实例。
offlineMediaKeyId 离线媒体密钥标识。
offlineMediaKeyIdLen 离线媒体密钥标识长度。
status 媒体密钥状态。

返回:

函数结果代码Drm_ErrCode: - DRM_ERR_OK:执行成功; - DRM_ERR_INVALID_VAL:输入参数mediaKeySystem为空指针或无效,或其它指针类型输入参数为空指针; - DRM_ERR_UNKNOWN:发生内部错误,请查看日志详细信息。

OH_MediaKeySystem_GetStatistics()

Drm_ErrCode OH_MediaKeySystem_GetStatistics (MediaKeySystem *mediaKeySystem, DRM_Statistics *statistics)

描述

获取度量记录。

起始版本: 11

参数:

名称 描述
mediaKeySystem MediaKeySystem实例。
statistics 度量记录。

返回:

函数结果代码Drm_ErrCode: - DRM_ERR_OK:执行成功; - DRM_ERR_NO_MEMORY:内存不足,内存分配失败; - DRM_ERR_INVALID_VAL:输入参数mediaKeySystem为空指针或无效,或输入参数statistics为空指针; - DRM_ERR_UNKNOWN:发生内部错误,请查看日志详细信息。

OH_MediaKeySystem_IsSupported()

bool OH_MediaKeySystem_IsSupported (const char *name)

描述

查询设备是否支持对应的DRM解决方案。

起始版本: 11

参数:

名称 描述
name DRM解决方案名称。

返回:

是否支持。

OH_MediaKeySystem_IsSupported2()

bool OH_MediaKeySystem_IsSupported2 (const char *name, const char *mimeType)

描述

查询设备是否支持对应的DRM解决方案名称及媒体类型。

起始版本: 11

参数:

名称 描述
name DRM解决方案名称。
mimeType 媒体类型,支持的媒体类型取决于DRM解决方案,如:video/avc、video/hev。

返回:

是否支持。

OH_MediaKeySystem_IsSupported3()

bool OH_MediaKeySystem_IsSupported3 (const char *name, const char *mimeType, DRM_ContentProtectionLevel contentProtectionLevel)

描述

查询设备是否支持对应的DRM解决方案、媒体类型、内容保护级别。

起始版本: 11

参数:

名称 描述
name DRM解决方案名称。
mimeType 媒体类型,支持的媒体类型取决于DRM解决方案,如:video/avc、video/hev。
contentProtectionLevel 内容保护级别。

返回:

是否支持。

OH_MediaKeySystem_ProcessKeySystemResponse()

Drm_ErrCode OH_MediaKeySystem_ProcessKeySystemResponse (MediaKeySystem *mediaKeySystem, uint8_t *response, int32_t responseLen)

描述

处理设备DRM证书请求响应。

起始版本: 11

参数:

名称 描述
mediaKeySystem MediaKeySystem实例。
response 设备DRM证书请求响应。
responseLen 设备DRM证书请求响应长度。

返回:

函数结果代码Drm_ErrCode: - DRM_ERR_OK:执行成功; - DRM_ERR_INVALID_VAL:输入参数mediaKeySystem为空指针或无效,或输入参数response为空指针; - DRM_ERR_UNKNOWN:发生内部错误,请查看日志详细信息。

OH_MediaKeySystem_SetCallback()

Drm_ErrCode OH_MediaKeySystem_SetCallback (MediaKeySystem *mediaKeySystem, OH_MediaKeySystem_Callback callback)

描述

设置MediaKeySystem事件回调。

起始版本: 12

参数:

名称 描述
mediaKeySystem MediaKeySystem实例。
callback 回调函数。

返回:

函数结果代码Drm_ErrCode: - DRM_ERR_OK:执行成功; - DRM_ERR_INVALID_VAL:输入参数无效。

OH_MediaKeySystem_SetConfigurationByteArray()

Drm_ErrCode OH_MediaKeySystem_SetConfigurationByteArray (MediaKeySystem *mediaKeySystem, const char *configName, uint8_t *value, int32_t valueLen)

描述

设置字符数组类型的配置属性值。

起始版本: 11

参数:

名称 描述
mediaKeySystem MediaKeySystem实例。
configName 字符数组类型配置属性名,不能为空,具体支持的属性名由设备上DRM解决方案决定。
value 字符数组类型配置属性值,不能为空,具体支持的属性值由设备上DRM解决方案决定。
valueLen 字符数组类型配置属性值长度。

返回:

函数结果代码Drm_ErrCode: - DRM_ERR_OK:执行成功; - DRM_ERR_NO_MEMORY:内存不足,内存分配失败; - DRM_ERR_INVALID_VAL:输入参数mediaKeySystem为空指针或无效,输入参数configName为空指针,或输入参数value为空指针; - DRM_ERR_UNKNOWN:发生内部错误,请查看日志详细信息。

OH_MediaKeySystem_SetConfigurationString()

Drm_ErrCode OH_MediaKeySystem_SetConfigurationString (MediaKeySystem *mediaKeySystem, const char *configName, const char *value)

描述

设置字符串类型的配置属性。

起始版本: 11

参数:

名称 描述
mediaKeySystem MediaKeySystem实例。
configName 字符串类型配置属性名,不能为空,具体支持的属性名由设备上DRM解决方案决定。
value 字符串类型配置属性值,不能为空,具体支持的属性值由设备上DRM解决方案决定。

返回:

函数结果代码Drm_ErrCode: - DRM_ERR_OK:执行成功; - DRM_ERR_INVALID_VAL:输入参数mediaKeySystem为空指针或无效,输入参数configName为空指针,或输入参数value为空指针。

OH_MediaKeySystem_SetMediaKeySystemCallback()

Drm_ErrCode OH_MediaKeySystem_SetMediaKeySystemCallback (MediaKeySystem *mediaKeySystem, MediaKeySystem_Callback callback)

描述

设置MediaKeySystem事件回调。

起始版本: 11

参数:

名称 描述
mediaKeySystem MediaKeySystem实例。
callback 回调函数。

返回:

函数结果代码Drm_ErrCode: - DRM_ERR_OK:执行成功; - DRM_ERR_INVALID_VAL:输入参数mediaKeySystem为空指针或无效。

变量说明

data [12]

uint8_t DRM_MediaKeyRequest::data[MAX_MEDIA_KEY_REQUEST_DATA_LEN]

描述

发送给DRM服务的媒体密钥请求数据。

data [22]

uint8_t DRM_PsshInfo::data[MAX_PSSH_DATA_LEN]

描述

PSSH(Protected System Specific Header)信息。

dataLen [12]

int32_t DRM_MediaKeyRequest::dataLen

描述

媒体密钥请求数据长度。

dataLen [22]

int32_t DRM_PsshInfo::dataLen

描述

PSSH信息长度。

defaultUrl

char DRM_MediaKeyRequest::defaultUrl[MAX_DEFAULT_URL_LEN]

描述

媒体密钥服务URL。

eventCallback [12]

MediaKeySession_EventCallback MediaKeySession_Callback::eventCallback

描述

MediaKeySession事件回调,如密钥过期等。

eventCallback [22]

OH_MediaKeySession_EventCallback OH_MediaKeySession_Callback::eventCallback

描述

MediaKeySession事件回调,如密钥过期等。

ids

uint8_t DRM_OfflineMediakeyIdArray::ids[MAX_OFFLINE_MEDIA_KEY_ID_COUNT][MAX_OFFLINE_MEDIA_KEY_ID_LEN]

描述

离线媒体密钥标识集合。

idsCount

uint32_t DRM_OfflineMediakeyIdArray::idsCount

描述

离线媒体密钥标识数量。

idsLen

int32_t DRM_OfflineMediakeyIdArray::idsLen[MAX_OFFLINE_MEDIA_KEY_ID_COUNT]

描述

离线媒体密钥标识长度集合。

initData

uint8_t DRM_MediaKeyRequestInfo::initData[MAX_INIT_DATA_LEN]

描述

媒体密钥请求信息中初始化数据。

initDataLen

int32_t DRM_MediaKeyRequestInfo::initDataLen

描述

媒体密钥请求信息中初始化数据的长度。

keyChangeCallback [12]

MediaKeySession_KeyChangeCallback MediaKeySession_Callback::keyChangeCallback

描述

密钥变换回调。

keyChangeCallback [22]

OH_MediaKeySession_KeyChangeCallback OH_MediaKeySession_Callback::keyChangeCallback

描述

密钥变换回调。

keyId

uint8_t DRM_KeysInfo::keyId[MAX_KEY_INFO_COUNT][MAX_KEY_ID_LEN]

描述

媒体密钥标识数组。

keysInfoCount

uint32_t DRM_KeysInfo::keysInfoCount

描述

密钥信息个数。

mimeType

char DRM_MediaKeyRequestInfo::mimeType[MAX_MIMETYPE_LEN]

描述

媒体密钥类型。

name

char DRM_MediaKeySystemDescription::name[MAX_MEDIA_KEY_SYSTEM_NAME_LEN]

描述 DRM解决方案名称。

optionData

char DRM_MediaKeyRequestInfo::optionData[MAX_MEDIA_KEY_REQUEST_OPTION_COUNT][MAX_MEDIA_KEY_REQUEST_OPTION_DATA_LEN]

描述

可选数据集合。

optionName

char DRM_MediaKeyRequestInfo::optionName[MAX_MEDIA_KEY_REQUEST_OPTION_COUNT][MAX_MEDIA_KEY_REQUEST_OPTION_NAME_LEN]

描述

可选数据名称集合。

optionsCount

uint32_t DRM_MediaKeyRequestInfo::optionsCount

描述

可选数据的数量。

psshCount

uint32_t DRM_MediaKeySystemInfo::psshCount

描述

DRM信息中PSSH(Protected System Specific Header)信息的数量。

psshInfo

DRM_PsshInfo DRM_MediaKeySystemInfo::psshInfo[MAX_PSSH_INFO_COUNT]

描述

DRM信息中PSSH(Protected System Specific Header)信息的数组。

statisticsCount

uint32_t DRM_Statistics::statisticsCount

描述

度量记录的数量。

statisticsDescription

char DRM_Statistics::statisticsDescription[MAX_STATISTICS_COUNT][MAX_STATISTICS_BUFFER_LEN]

描述

度量描述信息集合。

statisticsName

char DRM_Statistics::statisticsName[MAX_STATISTICS_COUNT][MAX_STATISTICS_NAME_LEN]

描述

度量记录名称集合。

statusCount

uint32_t DRM_MediaKeyStatus::statusCount

描述

媒体密钥状态数组长度。

statusName

char DRM_MediaKeyStatus::statusName[MAX_MEDIA_KEY_STATUS_COUNT][MAX_MEDIA_KEY_STATUS_NAME_LEN]

描述

媒体密钥状态的名称数组。

statusValue [12]

char DRM_KeysInfo::statusValue[MAX_KEY_INFO_COUNT][MAX_KEY_STATUS_VALUE_LEN]

描述

媒体密钥信息中的媒体密钥状态值数组。

statusValue [22]

char DRM_MediaKeyStatus::statusValue[MAX_MEDIA_KEY_STATUS_COUNT][MAX_MEDIA_KEY_STATUS_VALUE_LEN]

描述

MediaKeySession会话中媒体密钥状态值数组。

type [12]

DRM_MediaKeyType DRM_MediaKeyRequestInfo::type

描述

媒体密钥请求信息中的密钥类型,在线或者离线。

type [22]

DRM_MediaKeyRequestType DRM_MediaKeyRequest::type

描述

媒体密钥请求类型。

uuid [12]

uint8_t DRM_PsshInfo::uuid[DRM_UUID_LEN]

描述 pssh信息中的DRM解决方案唯一标识。

uuid [22]

uint8_t DRM_MediaKeySystemDescription::uuid[DRM_UUID_LEN]

描述 设备支持的DRM解决方案唯一标识。

你可能感兴趣的鸿蒙文章

harmony 鸿蒙DRM Kit(数字版权保护服务)

harmony 鸿蒙DRM_KeysInfo

harmony 鸿蒙DRM_MediaKeyRequest

harmony 鸿蒙DRM_MediaKeyRequestInfo

harmony 鸿蒙DRM_MediaKeyStatus

harmony 鸿蒙DRM_MediaKeySystemDescription

harmony 鸿蒙DRM_MediaKeySystemInfo

harmony 鸿蒙DRM_OfflineMediakeyIdArray

harmony 鸿蒙DRM_PsshInfo

harmony 鸿蒙DRM_Statistics

0  赞