搜索
首页
/
开发
/
平台系统集成
/
APP集成DRM(OHM)
开源鸿蒙/鸿蒙系统APP集成终端自带DRM
DTA
2026-11-12
6
微信分享
扫描分享
OpenHarmony/HarmonyOS系统 从v6.1版本开始较好的支持了DRM Kit,定义了DRM Kit API,支持创建DRM实例与DRM会话、支持证书管理、媒体密钥管理、节目授权和节目解密。

简介

    OpenHarmony/HarmonyOS系统 从v6.1版本开始较好的支持了DRM Kit,定义了DRM Kit API,支持创建DRM实例与DRM会话、支持证书管理、媒体密钥管理、节目授权和节目解密。详细介绍参见网址:https://device.harmonyos.com/cn/docs/apiref/harmonyos-guides/drm-overview

    鸿蒙 DRM Kit 同时提供 ArkTS 与 C/C++ 接入入口;上表按平台 DRM 集成流程列出常用接口。参数结构、错误码、权限要求和可用版本请以对应 API Reference 为准,不同系统版本之间可能存在差异。建议按“查询能力 → 获取方案名并创建 MediaKeySystem → 创建 Session → 生成请求并提交 license → 配置解密 → 关闭 Session 并释放实例”的顺序集成。具体接口入口:

- DRM Kit 概览:https://device.harmonyos.com/cn/docs/apiref/harmonyos-guides/drm-overview

- ArkTS API:https://developer.huawei.com/consumer/cn/doc/doccenter-references/api/drm-arkts

- ArkTS 开发指南:https://device.harmonyos.com/cn/docs/apiref/harmonyos-guides/drm-arkts-dev-guide

- C/C++ API:https://developer.huawei.com/consumer/cn/doc/doccenter-references/api/drm-c

- C/C++ 开发指南:https://device.harmonyos.com/cn/docs/apiref/harmonyos-guides/drm-c-dev-guide

 

常用接口

功能

ArkTS 接口

C/C++ 接口

查询 DRM 方案支持情况

drm.isMediaKeySystemSupported(uuid)

OH_MediaKeySystem_IsSupported(...)

按 UUID 查询方案名称

drm.getMediaKeySystems(uuid)

OH_MediaKeySystem_GetMediaKeySystems(...)

创建 DRM 实例

drm.createMediaKeySystem(name)

OH_MediaKeySystem_Create(...)

创建 DRM 会话

createMediaKeySession()

OH_MediaKeySystem_CreateMediaKeySession(...)

生成 license 请求

generateKeySystemRequest(initData)

OH_MediaKeySession_GenerateMediaKeyRequest(...)

提交 license 响应

processKeySystemResponse(response)

OH_MediaKeySession_ProcessMediaKeyResponse(...)

将 DRM 会话配置给解码器

setDecryptionConfig(...)

OH_VideoDecoder_SetDecryptionConfig(...)

释放会话和 DRM 实例

会话/实例 destroy()

OH_MediaKeySession_Destroy() / OH_MediaKeySystem_Destroy()

 

典型调用流程

    OpenHarmony/HarmonyOS系统上,应用调用DRM Kit ArkTS API接口集成DRM功能,播放加密视频内容的流程如下:

a)视频应用下载视频内容,解析到视频内容为加密视频,在加密描述信息中获取解决方案UUID与内容标识(或pssh数据);

b)视频应用调用drm.isMediaKeySystemSupported接口传入解决方案UUID,判断当前系统中是否支持该解决方案能力;符合GY/T 277—2019要求的DRM解决方案的UUID为“0x3d5e6d359b9a41e8b843dd3c6e72c42c”。

c)视频应用调用drm.getMediaKeySystems接口根据解决方案UUID获取解决方案名称,并且使用解决方案名称调用drm.createMediaKeySystem接口创建DRM实例。OpenHarmony/HarmonyOS系统上符合GY/T 277—2019要求的解决方案的名称,除“com.wiseplay.drm”外,使用四个字段表示,各字段由英文小写字母、数字、下划线组成且以字母开头,字段之间用英文句号(.)分隔,前3个字段为固定值,连写为org.j104x.drm,表示ITU-T J.1040~J.1043等技术标准,第4个字段表示解决方案,默认取值为"generic”(方案名全称为org.j104x.drm.generic),表示OS默认自带的解决方案,其它值由ChinaDRM解决方案商自定义并在开源鸿蒙社区进行注册后使用。

d)视频应用通过DRM实例调用createMediaKeySession接口创建DRM会话;

e)视频应用通过DRM会话调用generateKeySystemRequest接口传入内容标识(或pssh数据)生成许可证请求数据消息,并且将该请求发送到服务端获取许可证响应消息;

f)视频应用通过DRM会话调用processKeySystemResponse接口传入许可证响应消息,将许可证响应消息传入到DRM客户端,处理许可证响应并解析出内容密钥以及其使用规则;

g)视频应用将DRM会话通过setDecryptionConfig将DRM会话设置到解码实例中;

h)视频应用播放加密视频时,通过DRM会话完成加密码流解密,然后解码、显示输出;

i)当视频应用结束播放时,通过DRM会话的destroy接口销毁该会话,并通过DRM实例的destroy接口销毁该实例。

   

    OpenHarmony/HarmonyOS系统上,应用调用DRM Kit C API接口集成DRM功能,播放加密视频内容的流程如下:

a)视频应用下载视频内容,并且完成视频内容解封装,从加密视频中获取加密描述信息,在加密描述信息中获取解决方案UUID与内容标识(或pssh数据);

b)视频应用调用OH_MediaKeySystem_IsSupported接口传入解决方案UUID,判断当前系统中是否支持该解决方案能力;符合GY/T 277—2019要求的DRM解决方案的UUID为“0x3d5e6d359b9a41e8b843dd3c6e72c42c”。

c)视频应用调用OH_MediaKeySystem_GetMediaKeySystems接口根据解决方案UUID获取解决方案名称,并且使用解决方案名称调用OH_MediaKeySystem_Create接口创建DRM实例。可能的解决方案名称包括“org.j104x.drm.generic”、“com.wiseplay.drm”在内;

d)视频应用通过DRM实例调用OH_MediaKeySystem_CreateMediaKeySession接口创建DRM会话;

e)视频应用通过DRM会话调用OH_MediaKeySession_GenerateMediaKeyRequest接口传入内容标识(或pssh数据)生成许可证请求数据消息,并且将该请求发送到服务端获取许可证响应消息;

f)视频应用通过DRM会话调用OH_MediaKeySession_ProcessMediaKeyResponse接口传入许可证响应消息,将许可证响应消息传入到DRM客户端,处理许可证响应并解析出内容密钥以及其使用规则;

g)视频应用将DRM会话通过OH_VideoDecoder_SetDecryptionConfig将DRM会话配置到解码实例中;

h)视频应用播放加密视频时,通过DRM会话完成加密码流解密,然后解码、显示输出;

i)当视频应用结束播放时,通过OH_MediaKeySession_Destroy接口销毁DRM会话,并通过OH_MediaKeySystem_Destroy接口销毁DRM实例。

 

开源鸿蒙/鸿蒙系统APP集成终端自带DRM
DTA
2026-11-12
6
微信分享
扫描分享
OpenHarmony/HarmonyOS系统 从v6.1版本开始较好的支持了DRM Kit,定义了DRM Kit API,支持创建DRM实例与DRM会话、支持证书管理、媒体密钥管理、节目授权和节目解密。

简介

    OpenHarmony/HarmonyOS系统 从v6.1版本开始较好的支持了DRM Kit,定义了DRM Kit API,支持创建DRM实例与DRM会话、支持证书管理、媒体密钥管理、节目授权和节目解密。详细介绍参见网址:https://device.harmonyos.com/cn/docs/apiref/harmonyos-guides/drm-overview

    鸿蒙 DRM Kit 同时提供 ArkTS 与 C/C++ 接入入口;上表按平台 DRM 集成流程列出常用接口。参数结构、错误码、权限要求和可用版本请以对应 API Reference 为准,不同系统版本之间可能存在差异。建议按“查询能力 → 获取方案名并创建 MediaKeySystem → 创建 Session → 生成请求并提交 license → 配置解密 → 关闭 Session 并释放实例”的顺序集成。具体接口入口:

- DRM Kit 概览:https://device.harmonyos.com/cn/docs/apiref/harmonyos-guides/drm-overview

- ArkTS API:https://developer.huawei.com/consumer/cn/doc/doccenter-references/api/drm-arkts

- ArkTS 开发指南:https://device.harmonyos.com/cn/docs/apiref/harmonyos-guides/drm-arkts-dev-guide

- C/C++ API:https://developer.huawei.com/consumer/cn/doc/doccenter-references/api/drm-c

- C/C++ 开发指南:https://device.harmonyos.com/cn/docs/apiref/harmonyos-guides/drm-c-dev-guide

 

常用接口

功能

ArkTS 接口

C/C++ 接口

查询 DRM 方案支持情况

drm.isMediaKeySystemSupported(uuid)

OH_MediaKeySystem_IsSupported(...)

按 UUID 查询方案名称

drm.getMediaKeySystems(uuid)

OH_MediaKeySystem_GetMediaKeySystems(...)

创建 DRM 实例

drm.createMediaKeySystem(name)

OH_MediaKeySystem_Create(...)

创建 DRM 会话

createMediaKeySession()

OH_MediaKeySystem_CreateMediaKeySession(...)

生成 license 请求

generateKeySystemRequest(initData)

OH_MediaKeySession_GenerateMediaKeyRequest(...)

提交 license 响应

processKeySystemResponse(response)

OH_MediaKeySession_ProcessMediaKeyResponse(...)

将 DRM 会话配置给解码器

setDecryptionConfig(...)

OH_VideoDecoder_SetDecryptionConfig(...)

释放会话和 DRM 实例

会话/实例 destroy()

OH_MediaKeySession_Destroy() / OH_MediaKeySystem_Destroy()

 

典型调用流程

    OpenHarmony/HarmonyOS系统上,应用调用DRM Kit ArkTS API接口集成DRM功能,播放加密视频内容的流程如下:

a)视频应用下载视频内容,解析到视频内容为加密视频,在加密描述信息中获取解决方案UUID与内容标识(或pssh数据);

b)视频应用调用drm.isMediaKeySystemSupported接口传入解决方案UUID,判断当前系统中是否支持该解决方案能力;符合GY/T 277—2019要求的DRM解决方案的UUID为“0x3d5e6d359b9a41e8b843dd3c6e72c42c”。

c)视频应用调用drm.getMediaKeySystems接口根据解决方案UUID获取解决方案名称,并且使用解决方案名称调用drm.createMediaKeySystem接口创建DRM实例。OpenHarmony/HarmonyOS系统上符合GY/T 277—2019要求的解决方案的名称,除“com.wiseplay.drm”外,使用四个字段表示,各字段由英文小写字母、数字、下划线组成且以字母开头,字段之间用英文句号(.)分隔,前3个字段为固定值,连写为org.j104x.drm,表示ITU-T J.1040~J.1043等技术标准,第4个字段表示解决方案,默认取值为"generic”(方案名全称为org.j104x.drm.generic),表示OS默认自带的解决方案,其它值由ChinaDRM解决方案商自定义并在开源鸿蒙社区进行注册后使用。

d)视频应用通过DRM实例调用createMediaKeySession接口创建DRM会话;

e)视频应用通过DRM会话调用generateKeySystemRequest接口传入内容标识(或pssh数据)生成许可证请求数据消息,并且将该请求发送到服务端获取许可证响应消息;

f)视频应用通过DRM会话调用processKeySystemResponse接口传入许可证响应消息,将许可证响应消息传入到DRM客户端,处理许可证响应并解析出内容密钥以及其使用规则;

g)视频应用将DRM会话通过setDecryptionConfig将DRM会话设置到解码实例中;

h)视频应用播放加密视频时,通过DRM会话完成加密码流解密,然后解码、显示输出;

i)当视频应用结束播放时,通过DRM会话的destroy接口销毁该会话,并通过DRM实例的destroy接口销毁该实例。

   

    OpenHarmony/HarmonyOS系统上,应用调用DRM Kit C API接口集成DRM功能,播放加密视频内容的流程如下:

a)视频应用下载视频内容,并且完成视频内容解封装,从加密视频中获取加密描述信息,在加密描述信息中获取解决方案UUID与内容标识(或pssh数据);

b)视频应用调用OH_MediaKeySystem_IsSupported接口传入解决方案UUID,判断当前系统中是否支持该解决方案能力;符合GY/T 277—2019要求的DRM解决方案的UUID为“0x3d5e6d359b9a41e8b843dd3c6e72c42c”。

c)视频应用调用OH_MediaKeySystem_GetMediaKeySystems接口根据解决方案UUID获取解决方案名称,并且使用解决方案名称调用OH_MediaKeySystem_Create接口创建DRM实例。可能的解决方案名称包括“org.j104x.drm.generic”、“com.wiseplay.drm”在内;

d)视频应用通过DRM实例调用OH_MediaKeySystem_CreateMediaKeySession接口创建DRM会话;

e)视频应用通过DRM会话调用OH_MediaKeySession_GenerateMediaKeyRequest接口传入内容标识(或pssh数据)生成许可证请求数据消息,并且将该请求发送到服务端获取许可证响应消息;

f)视频应用通过DRM会话调用OH_MediaKeySession_ProcessMediaKeyResponse接口传入许可证响应消息,将许可证响应消息传入到DRM客户端,处理许可证响应并解析出内容密钥以及其使用规则;

g)视频应用将DRM会话通过OH_VideoDecoder_SetDecryptionConfig将DRM会话配置到解码实例中;

h)视频应用播放加密视频时,通过DRM会话完成加密码流解密,然后解码、显示输出;

i)当视频应用结束播放时,通过OH_MediaKeySession_Destroy接口销毁DRM会话,并通过OH_MediaKeySystem_Destroy接口销毁DRM实例。