harmony 鸿蒙Drm
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_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 [1⁄2]
uint8_t DRM_MediaKeyRequest::data[MAX_MEDIA_KEY_REQUEST_DATA_LEN]
描述
发送给DRM服务的媒体密钥请求数据。
data [2⁄2]
uint8_t DRM_PsshInfo::data[MAX_PSSH_DATA_LEN]
描述
PSSH(Protected System Specific Header)信息。
dataLen [1⁄2]
int32_t DRM_MediaKeyRequest::dataLen
描述
媒体密钥请求数据长度。
dataLen [2⁄2]
int32_t DRM_PsshInfo::dataLen
描述
PSSH信息长度。
defaultUrl
char DRM_MediaKeyRequest::defaultUrl[MAX_DEFAULT_URL_LEN]
描述
媒体密钥服务URL。
eventCallback [1⁄2]
MediaKeySession_EventCallback MediaKeySession_Callback::eventCallback
描述
MediaKeySession事件回调,如密钥过期等。
eventCallback [2⁄2]
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 [1⁄2]
MediaKeySession_KeyChangeCallback MediaKeySession_Callback::keyChangeCallback
描述
密钥变换回调。
keyChangeCallback [2⁄2]
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 [1⁄2]
char DRM_KeysInfo::statusValue[MAX_KEY_INFO_COUNT][MAX_KEY_STATUS_VALUE_LEN]
描述
媒体密钥信息中的媒体密钥状态值数组。
statusValue [2⁄2]
char DRM_MediaKeyStatus::statusValue[MAX_MEDIA_KEY_STATUS_COUNT][MAX_MEDIA_KEY_STATUS_VALUE_LEN]
描述
MediaKeySession会话中媒体密钥状态值数组。
type [1⁄2]
DRM_MediaKeyType DRM_MediaKeyRequestInfo::type
描述
媒体密钥请求信息中的密钥类型,在线或者离线。
type [2⁄2]
DRM_MediaKeyRequestType DRM_MediaKeyRequest::type
描述
媒体密钥请求类型。
uuid [1⁄2]
uint8_t DRM_PsshInfo::uuid[DRM_UUID_LEN]
描述 pssh信息中的DRM解决方案唯一标识。
uuid [2⁄2]
uint8_t DRM_MediaKeySystemDescription::uuid[DRM_UUID_LEN]
描述 设备支持的DRM解决方案唯一标识。
你可能感兴趣的鸿蒙文章
harmony 鸿蒙DRM_MediaKeyRequestInfo
harmony 鸿蒙DRM_MediaKeySystemDescription
harmony 鸿蒙DRM_MediaKeySystemInfo
- 所属分类: 后端技术
- 本文标签:
热门推荐
-
2、 - 优质文章
-
3、 gate.io
-
8、 golang
-
9、 openharmony
-
10、 Vue中input框自动聚焦