• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# native_mediakeysystem.h
2
3## 概述
4
5定义Drm MediaKeySystem API。提供以下功能:<br>查询是否支持特定的drm、创建媒体密钥会话、获取和设置配置、获取统计信息、获取内容保护级别、生成提供请求、处理提供响应、事件监听、获取内容防护级别、管理离线媒体密钥等。
6
7**引用文件:** <multimedia/drm_framework/native_mediakeysystem.h>
8
9**库:** libnative_drm.z.so
10
11**系统能力:** SystemCapability.Multimedia.Drm.Core
12
13**起始版本:** 11
14
15**相关模块:** [Drm](capi-drm.md)
16
17## 汇总
18
19### 函数
20
21| 名称 | typedef关键字 | 描述 |
22| -- | -- | -- |
23| [typedef  Drm_ErrCode (\*MediaKeySystem_Callback)(DRM_EventType eventType, uint8_t *info, int32_t infoLen, char *extra)](#mediakeysystem_callback) | MediaKeySystem_Callback | MediaKeySystem事件触发时将调用的回调,不返回MediaKeySystem实例,适用于单个MediaKeySystem场景。 |
24| [typedef Drm_ErrCode (\*OH_MediaKeySystem_Callback)(MediaKeySystem *mediaKeySystem, DRM_EventType eventType, uint8_t *info, int32_t infoLen, char *extra)](#oh_mediakeysystem_callback) | OH_MediaKeySystem_Callback | MediaKeySystem事件触发时将调用的回调,返回MediaKeySystem实例,适用于多个MediaKeySystem场景。 |
25| [Drm_ErrCode OH_MediaKeySystem_SetCallback(MediaKeySystem *mediaKeySystem, OH_MediaKeySystem_Callback callback)](#oh_mediakeysystem_setcallback) | - | 设置MediaKeySystem事件回调。 |
26| [Drm_ErrCode OH_MediaKeySystem_GetMediaKeySystems(DRM_MediaKeySystemDescription *infos, uint32_t *count)](#oh_mediakeysystem_getmediakeysystems) | - | 获取设备支持的DRM解决方案的名称和唯一标识的列表。 |
27| [bool OH_MediaKeySystem_IsSupported(const char *name)](#oh_mediakeysystem_issupported) | - | 查询设备是否支持对应的DRM解决方案。 |
28| [bool OH_MediaKeySystem_IsSupported2(const char *name, const char *mimeType)](#oh_mediakeysystem_issupported2) | - | 查询设备是否支持对应的DRM解决方案名称及媒体类型。 |
29| [bool OH_MediaKeySystem_IsSupported3(const char *name, const char *mimeType, DRM_ContentProtectionLevel contentProtectionLevel)](#oh_mediakeysystem_issupported3) | - | 查询设备是否支持对应的DRM解决方案、媒体类型、内容保护级别。 |
30| [Drm_ErrCode OH_MediaKeySystem_Create(const char *name, MediaKeySystem **mediaKeySystem)](#oh_mediakeysystem_create) | - | 创建MediaKeySystem实例。 |
31| [Drm_ErrCode OH_MediaKeySystem_SetConfigurationString(MediaKeySystem *mediaKeySystem, const char *configName, const char *value)](#oh_mediakeysystem_setconfigurationstring) | - | 设置字符串类型的配置属性。 |
32| [Drm_ErrCode OH_MediaKeySystem_GetConfigurationString(MediaKeySystem *mediaKeySystem, const char *configName, char *value, int32_t valueLen)](#oh_mediakeysystem_getconfigurationstring) | - | 获取字符串类型配置属性值。 |
33| [Drm_ErrCode OH_MediaKeySystem_SetConfigurationByteArray(MediaKeySystem *mediaKeySystem, const char *configName, uint8_t *value, int32_t valueLen)](#oh_mediakeysystem_setconfigurationbytearray) | - | 设置字符数组类型的配置属性值。 |
34| [Drm_ErrCode OH_MediaKeySystem_GetConfigurationByteArray(MediaKeySystem *mediaKeySystem, const char *configName, uint8_t *value, int32_t *valueLen)](#oh_mediakeysystem_getconfigurationbytearray) | - | 获取字符数组类型配置属性值。 |
35| [Drm_ErrCode OH_MediaKeySystem_GetStatistics(MediaKeySystem *mediaKeySystem, DRM_Statistics *statistics)](#oh_mediakeysystem_getstatistics) | - | 获取度量记录。 |
36| [Drm_ErrCode OH_MediaKeySystem_GetMaxContentProtectionLevel(MediaKeySystem *mediaKeySystem, DRM_ContentProtectionLevel *contentProtectionLevel)](#oh_mediakeysystem_getmaxcontentprotectionlevel) | - | 获取设备支持的最大内容保护级别。 |
37| [Drm_ErrCode OH_MediaKeySystem_SetMediaKeySystemCallback(MediaKeySystem *mediaKeySystem, MediaKeySystem_Callback callback)](#oh_mediakeysystem_setmediakeysystemcallback) | - | 设置MediaKeySystem事件回调。 |
38| [Drm_ErrCode OH_MediaKeySystem_CreateMediaKeySession(MediaKeySystem *mediaKeySystem, DRM_ContentProtectionLevel *level, MediaKeySession **mediaKeySession)](#oh_mediakeysystem_createmediakeysession) | - | 创建MediaKeySession会话实例。 |
39| [Drm_ErrCode OH_MediaKeySystem_GenerateKeySystemRequest(MediaKeySystem *mediaKeySystem, uint8_t *request, int32_t *requestLen, char *defaultUrl, int32_t defaultUrlLen)](#oh_mediakeysystem_generatekeysystemrequest) | - | 生成设备DRM证书请求。 |
40| [Drm_ErrCode OH_MediaKeySystem_ProcessKeySystemResponse(MediaKeySystem *mediaKeySystem, uint8_t *response, int32_t responseLen)](#oh_mediakeysystem_processkeysystemresponse) | - | 处理设备DRM证书请求响应。 |
41| [Drm_ErrCode OH_MediaKeySystem_GetOfflineMediaKeyIds(MediaKeySystem *mediaKeySystem, DRM_OfflineMediakeyIdArray *offlineMediaKeyIds)](#oh_mediakeysystem_getofflinemediakeyids) | - | 获取离线媒体密钥标识列表,媒体密钥标识用于对离线媒体密钥的管理。 |
42| [Drm_ErrCode OH_MediaKeySystem_GetOfflineMediaKeyStatus(MediaKeySystem *mediaKeySystem, uint8_t *offlineMediaKeyId, int32_t offlineMediaKeyIdLen, DRM_OfflineMediaKeyStatus *status)](#oh_mediakeysystem_getofflinemediakeystatus) | - | 获取离线媒体密钥状态。 |
43| [Drm_ErrCode OH_MediaKeySystem_ClearOfflineMediaKeys(MediaKeySystem *mediaKeySystem, uint8_t *offlineMediaKeyId, int32_t offlineMediaKeyIdLen)](#oh_mediakeysystem_clearofflinemediakeys) | - | 按id清除离线媒体密钥。 |
44| [Drm_ErrCode OH_MediaKeySystem_GetCertificateStatus(MediaKeySystem *mediaKeySystem, DRM_CertificateStatus *certStatus)](#oh_mediakeysystem_getcertificatestatus) | - | 获取设备DRM证书状态。 |
45| [Drm_ErrCode OH_MediaKeySystem_Destroy(MediaKeySystem *mediaKeySystem)](#oh_mediakeysystem_destroy) | - | 销毁MediaKeySystem实例。 |
46
47## 函数说明
48
49### MediaKeySystem_Callback()
50
51```
52typedef  Drm_ErrCode (*MediaKeySystem_Callback)(DRM_EventType eventType, uint8_t *info,int32_t infoLen, char *extra)
53```
54
55**描述**
56
57MediaKeySystem事件触发时将调用的回调,不返回MediaKeySystem实例,适用于单个MediaKeySystem场景。
58
59**起始版本:** 11
60
61
62**参数:**
63
64| 参数项 | 描述 |
65| -- | -- |
66| [DRM_EventType](capi-native-drm-common-h.md#drm_eventtype) eventType | 事件类型。 |
67|  uint8_t *info | 事件信息。 |
68| int32_t infoLen | 事件信息长度。 |
69|  char *extra | 增量信息。 |
70
71**返回:**
72
73| 类型 | 说明 |
74| -- | -- |
75| [Drm_ErrCode](capi-native-drm-err-h.md#drm_errcode) | DRM_ERR_OK:执行成功。<br>DRM_ERR_INVALID_VAL:输入参数无效。 |
76
77### OH_MediaKeySystem_Callback()
78
79```
80typedef Drm_ErrCode (*OH_MediaKeySystem_Callback)(MediaKeySystem *mediaKeySystem, DRM_EventType eventType,uint8_t *info, int32_t infoLen, char *extra)
81```
82
83**描述**
84
85MediaKeySystem事件触发时将调用的回调,返回MediaKeySystem实例,适用于多个MediaKeySystem场景。
86
87**起始版本:** 12
88
89
90**参数:**
91
92| 参数项 | 描述 |
93| -- | -- |
94| [MediaKeySystem](capi-drm-mediakeysystem.md) *mediaKeySystem | MediaKeySystem实例。 |
95| [DRM_EventType](capi-native-drm-common-h.md#drm_eventtype) eventType | 事件类型。 |
96| uint8_t *info | 事件信息。 |
97|  int32_t infoLen | 事件信息长度。 |
98|  char *extra | 增量信息。 |
99
100**返回:**
101
102| 类型 | 说明 |
103| -- | -- |
104| [Drm_ErrCode](capi-native-drm-err-h.md#drm_errcode) | DRM_ERR_OK:执行成功。<br>DRM_ERR_INVALID_VAL:输入参数无效。 |
105
106### OH_MediaKeySystem_SetCallback()
107
108```
109Drm_ErrCode OH_MediaKeySystem_SetCallback(MediaKeySystem *mediaKeySystem, OH_MediaKeySystem_Callback callback)
110```
111
112**描述**
113
114设置MediaKeySystem事件回调。
115
116**起始版本:** 12
117
118
119**参数:**
120
121| 参数项 | 描述 |
122| -- | -- |
123| [MediaKeySystem](capi-drm-mediakeysystem.md) *mediaKeySystem | MediaKeySystem实例。 |
124| [OH_MediaKeySystem_Callback](#oh_mediakeysystem_callback) callback | 回调函数。 |
125
126**返回:**
127
128| 类型 | 说明 |
129| -- | -- |
130| [Drm_ErrCode](capi-native-drm-err-h.md#drm_errcode) | DRM_ERR_OK:执行成功。<br>DRM_ERR_INVALID_VAL:输入参数mediaKeySystem为空指针或无效。 |
131
132### OH_MediaKeySystem_GetMediaKeySystems()
133
134```
135Drm_ErrCode OH_MediaKeySystem_GetMediaKeySystems(DRM_MediaKeySystemDescription *infos, uint32_t *count)
136```
137
138**描述**
139
140获取设备支持的DRM解决方案的名称和唯一标识的列表。
141
142**起始版本:** 12
143
144
145**参数:**
146
147| 参数项 | 描述 |
148| -- | -- |
149| [DRM_MediaKeySystemDescription](capi-drm-drm-mediakeysystemdescription.md) *infos | DRM解决方案名称和唯一标识的列表。 |
150| uint32_t *count | DRM解决方案名称和唯一标识的列表长度。 |
151
152**返回:**
153
154| 类型 | 说明 |
155| -- | -- |
156| [Drm_ErrCode](capi-native-drm-err-h.md#drm_errcode) | DRM_ERR_OK:执行成功。<br>DRM_ERR_INVALID_VAL:可能原因:<br>                            1.输入参数infos为空指针或输入参数count为空指针。<br>                            2.输入参数infos长度不足。<br>DRM_ERR_UNKNOWN:发生内部错误,请查看日志详细信息。 |
157
158### OH_MediaKeySystem_IsSupported()
159
160```
161bool OH_MediaKeySystem_IsSupported(const char *name)
162```
163
164**描述**
165
166查询设备是否支持对应的DRM解决方案。
167
168**起始版本:** 11
169
170
171**参数:**
172
173| 参数项 | 描述 |
174| -- | -- |
175| const char *name | DRM解决方案名称。 |
176
177**返回:**
178
179| 类型 | 说明 |
180| -- | -- |
181| bool | 是否支持。 |
182
183### OH_MediaKeySystem_IsSupported2()
184
185```
186bool OH_MediaKeySystem_IsSupported2(const char *name, const char *mimeType)
187```
188
189**描述**
190
191查询设备是否支持对应的DRM解决方案名称及媒体类型。
192
193**起始版本:** 11
194
195
196**参数:**
197
198| 参数项 | 描述 |
199| -- | -- |
200| const char *name | DRM解决方案名称。 |
201| const char *mimeType | 媒体类型,支持的媒体类型取决于DRM解决方案,如:video/avcvideo/hev。 |
202
203**返回:**
204
205| 类型 | 说明 |
206| -- | -- |
207| bool | 是否支持。 |
208
209### OH_MediaKeySystem_IsSupported3()
210
211```
212bool OH_MediaKeySystem_IsSupported3(const char *name, const char *mimeType,DRM_ContentProtectionLevel contentProtectionLevel)
213```
214
215**描述**
216
217查询设备是否支持对应的DRM解决方案、媒体类型、内容保护级别。
218
219**起始版本:** 11
220
221
222**参数:**
223
224| 参数项 | 描述 |
225| -- | -- |
226| const char *name | DRM解决方案名称。 |
227| const char *mimeType | 媒体类型,支持的媒体类型取决于DRM解决方案,如:video/avcvideo/hev。 |
228| [DRM_ContentProtectionLevel](capi-native-drm-common-h.md#drm_contentprotectionlevel) contentProtectionLevel | 内容保护级别。 |
229
230**返回:**
231
232| 类型 | 说明 |
233| -- | -- |
234| bool | 是否支持。 |
235
236### OH_MediaKeySystem_Create()
237
238```
239Drm_ErrCode OH_MediaKeySystem_Create(const char *name, MediaKeySystem **mediaKeySystem)
240```
241
242**描述**
243
244创建MediaKeySystem实例。
245
246**起始版本:** 11
247
248
249**参数:**
250
251| 参数项 | 描述 |
252| -- | -- |
253| const char *name | DRM解决方案名称。 |
254| [MediaKeySystem](capi-drm-mediakeysystem.md) **mediaKeySystem | MediaKeySystem实例。 |
255
256**返回:**
257
258| 类型 | 说明 |
259| -- | -- |
260| [Drm_ErrCode](capi-native-drm-err-h.md#drm_errcode) | DRM_ERR_OK:执行成功。<br>DRM_ERR_INVALID_VAL:可能原因:<br>                            1.输入参数name为空指针或长度为0。<br>                            2.输入参数mediaKeySystem为空指针。<br>DRM_ERR_UNKNOWN:发生内部错误,请查看日志详细信息。<br>DRM_ERR_SERVICE_DIED:服务死亡。<br>DRM_ERR_MAX_SYSTEM_NUM_REACHED:已创建的MediaKeySystem数量达到最大限制(64个)。 |
261
262### OH_MediaKeySystem_SetConfigurationString()
263
264```
265Drm_ErrCode OH_MediaKeySystem_SetConfigurationString(MediaKeySystem *mediaKeySystem,const char *configName, const char *value)
266```
267
268**描述**
269
270设置字符串类型的配置属性。
271
272**起始版本:** 11
273
274
275**参数:**
276
277| 参数项 | 描述 |
278| -- | -- |
279| [MediaKeySystem](capi-drm-mediakeysystem.md) *mediaKeySystem | MediaKeySystem实例。 |
280| const char *configName | 字符串类型配置属性名,不能为空,具体支持的属性名由设备上DRM解决方案决定。 |
281| const char *value | 字符串类型配置属性值,不能为空,具体支持的属性值由设备上DRM解决方案决定。 |
282
283**返回:**
284
285| 类型 | 说明 |
286| -- | -- |
287| [Drm_ErrCode](capi-native-drm-err-h.md#drm_errcode) | DRM_ERR_OK:执行成功。<br>DRM_ERR_INVALID_VAL:输入参数mediaKeySystem为空指针或无效,输入参数configName为空指针,或输入参数value为空指针。 |
288
289### OH_MediaKeySystem_GetConfigurationString()
290
291```
292Drm_ErrCode OH_MediaKeySystem_GetConfigurationString(MediaKeySystem *mediaKeySystem,const char *configName, char *value, int32_t valueLen)
293```
294
295**描述**
296
297获取字符串类型配置属性值。
298
299**起始版本:** 11
300
301
302**参数:**
303
304| 参数项 | 描述 |
305| -- | -- |
306| [MediaKeySystem](capi-drm-mediakeysystem.md) *mediaKeySystem | MediaKeySystem实例。 |
307| const char *configName | 字符串类型配置名。 |
308| char *value | 字符串类型配置值。 |
309| int32_t valueLen | 字符串类型配置值长度。 |
310
311**返回:**
312
313| 类型 | 说明 |
314| -- | -- |
315| [Drm_ErrCode](capi-native-drm-err-h.md#drm_errcode) | DRM_ERR_OK:执行成功。<br>DRM_ERR_NO_MEMORY:内存不足,内存分配失败。<br>DRM_ERR_INVALID_VAL:输入参数mediaKeySystem为空指针或无效,输入参数configName为空指针,或输入参数value为空指针。<br>DRM_ERR_UNKNOWN:发生内部错误,请查看日志详细信息。 |
316
317### OH_MediaKeySystem_SetConfigurationByteArray()
318
319```
320Drm_ErrCode OH_MediaKeySystem_SetConfigurationByteArray(MediaKeySystem *mediaKeySystem,const char *configName, uint8_t *value, int32_t valueLen)
321```
322
323**描述**
324
325设置字符数组类型的配置属性值。
326
327**起始版本:** 11
328
329
330**参数:**
331
332| 参数项 | 描述 |
333| -- | -- |
334| [MediaKeySystem](capi-drm-mediakeysystem.md) *mediaKeySystem | MediaKeySystem实例。 |
335| const char *configName | 字符数组类型配置属性名,不能为空,具体支持的属性名由设备上DRM解决方案决定。 |
336| uint8_t *value | 字符数组类型配置属性值,不能为空,具体支持的属性值由设备上DRM解决方案决定。 |
337| int32_t valueLen | 字符数组类型配置属性值长度。 |
338
339**返回:**
340
341| 类型 | 说明 |
342| -- | -- |
343| [Drm_ErrCode](capi-native-drm-err-h.md#drm_errcode) | DRM_ERR_OK:执行成功。<br>DRM_ERR_NO_MEMORY:内存不足,内存分配失败。<br>DRM_ERR_INVALID_VAL:输入参数mediaKeySystem为空指针或无效,输入参数configName为空指针,或输入参数value为空指针。<br>DRM_ERR_UNKNOWN:发生内部错误,请查看日志详细信息。 |
344
345### OH_MediaKeySystem_GetConfigurationByteArray()
346
347```
348Drm_ErrCode OH_MediaKeySystem_GetConfigurationByteArray(MediaKeySystem *mediaKeySystem,const char *configName, uint8_t *value, int32_t *valueLen)
349```
350
351**描述**
352
353获取字符数组类型配置属性值。
354
355**起始版本:** 11
356
357
358**参数:**
359
360| 参数项 | 描述 |
361| -- | -- |
362| [MediaKeySystem](capi-drm-mediakeysystem.md) *mediaKeySystem | MediaKeySystem实例。 |
363| const char *configName | 字符数组类型配置属性名称,不能为空,具体支持的属性名由设备上DRM解决方案决定。 |
364| uint8_t *value | 字符数组类型配置属性。 |
365| int32_t *valueLen | 字符数组类型配置属性长度。 |
366
367**返回:**
368
369| 类型 | 说明 |
370| -- | -- |
371| [Drm_ErrCode](capi-native-drm-err-h.md#drm_errcode) | DRM_ERR_OK:执行成功。<br>DRM_ERR_NO_MEMORY:内存不足,内存分配失败。<br>DRM_ERR_INVALID_VAL:输入参数mediaKeySystem为空指针或无效,输入参数configName为空指针,输入参数value为空指针,或valueLen为空指针。<br>DRM_ERR_UNKNOWN:发生内部错误,请查看日志详细信息。 |
372
373### OH_MediaKeySystem_GetStatistics()
374
375```
376Drm_ErrCode OH_MediaKeySystem_GetStatistics(MediaKeySystem *mediaKeySystem, DRM_Statistics *statistics)
377```
378
379**描述**
380
381获取度量记录。
382
383**起始版本:** 11
384
385
386**参数:**
387
388| 参数项 | 描述 |
389| -- | -- |
390| [MediaKeySystem](capi-drm-mediakeysystem.md) *mediaKeySystem | MediaKeySystem实例。 |
391| [DRM_Statistics](capi-drm-drm-statistics.md) *statistics | 度量记录。 |
392
393**返回:**
394
395| 类型 | 说明 |
396| -- | -- |
397| [Drm_ErrCode](capi-native-drm-err-h.md#drm_errcode) | DRM_ERR_OK:执行成功。<br>DRM_ERR_NO_MEMORY:内存不足,内存分配失败。<br>DRM_ERR_INVALID_VAL:输入参数mediaKeySystem为空指针或无效,或输入参数statistics为空指针。<br>DRM_ERR_UNKNOWN:发生内部错误,请查看日志详细信息。 |
398
399### OH_MediaKeySystem_GetMaxContentProtectionLevel()
400
401```
402Drm_ErrCode OH_MediaKeySystem_GetMaxContentProtectionLevel(MediaKeySystem *mediaKeySystem,DRM_ContentProtectionLevel *contentProtectionLevel)
403```
404
405**描述**
406
407获取设备支持的最大内容保护级别。
408
409**起始版本:** 11
410
411
412**参数:**
413
414| 参数项 | 描述 |
415| -- | -- |
416| [MediaKeySystem](capi-drm-mediakeysystem.md) *mediaKeySystem | MediaKeySystem实例。 |
417| [DRM_ContentProtectionLevel](capi-native-drm-common-h.md#drm_contentprotectionlevel) *contentProtectionLevel | 内容保护级别。 |
418
419**返回:**
420
421| 类型 | 说明 |
422| -- | -- |
423| [Drm_ErrCode](capi-native-drm-err-h.md#drm_errcode) | DRM_ERR_OK:执行成功。<br>DRM_ERR_INVALID_VAL:输入参数mediaKeySystem为空指针或无效,或输入参数contentProtectionLevel为空指针。<br>DRM_ERR_UNKNOWN:发生内部错误,请查看日志详细信息。 |
424
425### OH_MediaKeySystem_SetMediaKeySystemCallback()
426
427```
428Drm_ErrCode OH_MediaKeySystem_SetMediaKeySystemCallback(MediaKeySystem *mediaKeySystem,MediaKeySystem_Callback callback)
429```
430
431**描述**
432
433设置MediaKeySystem事件回调。
434
435**起始版本:** 11
436
437
438**参数:**
439
440| 参数项 | 描述 |
441| -- | -- |
442| [MediaKeySystem](capi-drm-mediakeysystem.md) *mediaKeySystem | MediaKeySystem实例。 |
443| [MediaKeySystem_Callback](#mediakeysystem_callback) callback | 回调函数。 |
444
445**返回:**
446
447| 类型 | 说明 |
448| -- | -- |
449| [Drm_ErrCode](capi-native-drm-err-h.md#drm_errcode) | DRM_ERR_OK:执行成功。<br>DRM_ERR_INVALID_VAL:输入参数mediaKeySystem为空指针或无效。 |
450
451### OH_MediaKeySystem_CreateMediaKeySession()
452
453```
454Drm_ErrCode OH_MediaKeySystem_CreateMediaKeySession(MediaKeySystem *mediaKeySystem,DRM_ContentProtectionLevel *level, MediaKeySession **mediaKeySession)
455```
456
457**描述**
458
459创建MediaKeySession会话实例。
460
461**起始版本:** 11
462
463
464**参数:**
465
466| 参数项 | 描述 |
467| -- | -- |
468| [MediaKeySystem](capi-drm-mediakeysystem.md) *mediaKeySystem | MediaKeySystem实例。 |
469| [DRM_ContentProtectionLevel](capi-native-drm-common-h.md#drm_contentprotectionlevel) *level | 内容保护级别。 |
470| [MediaKeySession](capi-drm-mediakeysession.md) **mediaKeySession | MediaKeySession实例。 |
471
472**返回:**
473
474| 类型 | 说明 |
475| -- | -- |
476| [Drm_ErrCode](capi-native-drm-err-h.md#drm_errcode) | DRM_ERR_OK:执行成功。<br>DRM_ERR_NO_MEMORY:内存不足,内存分配失败。<br>DRM_ERR_INVALID_VAL:输入参数mediaKeySystem为空指针或无效,或输入参数level超出合理范围,或mediaKeySession为空指针。<br>DRM_ERR_UNKNOWN:发生内部错误,请查看日志详细信息。<br>DRM_ERR_SERVICE_DIED:服务死亡。<br>DRM_ERR_MAX_SESSION_NUM_REACHED:当前MediaKeySystem已创建的MediaKeySession数量达到最大限制(64个)。 |
477
478### OH_MediaKeySystem_GenerateKeySystemRequest()
479
480```
481Drm_ErrCode OH_MediaKeySystem_GenerateKeySystemRequest(MediaKeySystem *mediaKeySystem, uint8_t *request,int32_t *requestLen, char *defaultUrl, int32_t defaultUrlLen)
482```
483
484**描述**
485
486生成设备DRM证书请求。
487
488**起始版本:** 11
489
490
491**参数:**
492
493| 参数项 | 描述 |
494| -- | -- |
495| [MediaKeySystem](capi-drm-mediakeysystem.md) *mediaKeySystem | MediaKeySystem实例。 |
496| uint8_t *request | 设备DRM证书请求。 |
497| int32_t *requestLen | 设备DRM证书请求的长度。 |
498| char *defaultUrl | 设备DRM证书服务的URL。 |
499| int32_t defaultUrlLen | 设备DRM证书服务的URL长度。 |
500
501**返回:**
502
503| 类型 | 说明 |
504| -- | -- |
505| [Drm_ErrCode](capi-native-drm-err-h.md#drm_errcode) | DRM_ERR_OK:执行成功。<br>DRM_ERR_NO_MEMORY:内存不足,内存分配失败。<br>DRM_ERR_INVALID_VAL:输入参数mediaKeySystem为空指针或无效,或其它指针类型输入参数为空指针。<br>DRM_ERR_UNKNOWN:发生内部错误,请查看日志详细信息。 |
506
507### OH_MediaKeySystem_ProcessKeySystemResponse()
508
509```
510Drm_ErrCode OH_MediaKeySystem_ProcessKeySystemResponse(MediaKeySystem *mediaKeySystem,uint8_t *response, int32_t responseLen)
511```
512
513**描述**
514
515处理设备DRM证书请求响应。
516
517**起始版本:** 11
518
519
520**参数:**
521
522| 参数项 | 描述 |
523| -- | -- |
524| [MediaKeySystem](capi-drm-mediakeysystem.md) *mediaKeySystem | MediaKeySystem实例。 |
525| uint8_t *response | 设备DRM证书请求响应。 |
526| int32_t responseLen | 设备DRM证书请求响应长度。 |
527
528**返回:**
529
530| 类型 | 说明 |
531| -- | -- |
532| [Drm_ErrCode](capi-native-drm-err-h.md#drm_errcode) | DRM_ERR_OK:执行成功。<br>DRM_ERR_INVALID_VAL:输入参数mediaKeySystem为空指针或无效,或输入参数response为空指针。<br>DRM_ERR_UNKNOWN:发生内部错误,请查看日志详细信息。 |
533
534### OH_MediaKeySystem_GetOfflineMediaKeyIds()
535
536```
537Drm_ErrCode OH_MediaKeySystem_GetOfflineMediaKeyIds(MediaKeySystem *mediaKeySystem,DRM_OfflineMediakeyIdArray *offlineMediaKeyIds)
538```
539
540**描述**
541
542获取离线媒体密钥标识列表,媒体密钥标识用于对离线媒体密钥的管理。
543
544**起始版本:** 11
545
546
547**参数:**
548
549| 参数项 | 描述 |
550| -- | -- |
551| [MediaKeySystem](capi-drm-mediakeysystem.md) *mediaKeySystem | MediaKeySystem实例。 |
552| [DRM_OfflineMediakeyIdArray](capi-drm-drm-offlinemediakeyidarray.md) *offlineMediaKeyIds | 离线媒体密钥的媒体密钥标识列表。 |
553
554**返回:**
555
556| 类型 | 说明 |
557| -- | -- |
558| [Drm_ErrCode](capi-native-drm-err-h.md#drm_errcode) | DRM_ERR_OK:执行成功。<br>DRM_ERR_NO_MEMORY:内存不足,内存分配失败。<br>DRM_ERR_INVALID_VAL:输入参数mediaKeySystem为空指针或无效,或输入参数offlineMediaKeyIds为空指针。<br>DRM_ERR_UNKNOWN:发生内部错误,请查看日志详细信息。 |
559
560### OH_MediaKeySystem_GetOfflineMediaKeyStatus()
561
562```
563Drm_ErrCode OH_MediaKeySystem_GetOfflineMediaKeyStatus(MediaKeySystem *mediaKeySystem,uint8_t *offlineMediaKeyId, int32_t offlineMediaKeyIdLen, DRM_OfflineMediaKeyStatus *status)
564```
565
566**描述**
567
568获取离线媒体密钥状态。
569
570**起始版本:** 11
571
572
573**参数:**
574
575| 参数项 | 描述 |
576| -- | -- |
577| [MediaKeySystem](capi-drm-mediakeysystem.md) *mediaKeySystem | MediaKeySystem实例。 |
578| uint8_t *offlineMediaKeyId | 离线媒体密钥标识。 |
579| int32_t offlineMediaKeyIdLen | 离线媒体密钥标识长度。 |
580| [DRM_OfflineMediaKeyStatus](capi-native-drm-common-h.md#drm_offlinemediakeystatus) *status | 媒体密钥状态。 |
581
582**返回:**
583
584| 类型 | 说明 |
585| -- | -- |
586| [Drm_ErrCode](capi-native-drm-err-h.md#drm_errcode) | DRM_ERR_OK:执行成功。<br>DRM_ERR_INVALID_VAL:输入参数mediaKeySystem为空指针或无效,或其它指针类型输入参数为空指针。<br>DRM_ERR_UNKNOWN:发生内部错误,请查看日志详细信息。 |
587
588### OH_MediaKeySystem_ClearOfflineMediaKeys()
589
590```
591Drm_ErrCode OH_MediaKeySystem_ClearOfflineMediaKeys(MediaKeySystem *mediaKeySystem,uint8_t *offlineMediaKeyId, int32_t offlineMediaKeyIdLen)
592```
593
594**描述**
595
596按id清除离线媒体密钥。
597
598**起始版本:** 11
599
600
601**参数:**
602
603| 参数项 | 描述 |
604| -- | -- |
605| [MediaKeySystem](capi-drm-mediakeysystem.md) *mediaKeySystem | MediaKeySystem实例。 |
606| uint8_t *offlineMediaKeyId | 离线媒体密钥标识。 |
607| int32_t offlineMediaKeyIdLen | 离线媒体密钥标识长度。 |
608
609**返回:**
610
611| 类型 | 说明 |
612| -- | -- |
613| [Drm_ErrCode](capi-native-drm-err-h.md#drm_errcode) | DRM_ERR_OK:执行成功。<br>DRM_ERR_INVALID_VAL:输入参数mediaKeySystem为空指针或无效,或输入参数offlineMediaKeyId为空指针。<br>DRM_ERR_UNKNOWN:发生内部错误,请查看日志详细信息。 |
614
615### OH_MediaKeySystem_GetCertificateStatus()
616
617```
618Drm_ErrCode OH_MediaKeySystem_GetCertificateStatus(MediaKeySystem *mediaKeySystem,DRM_CertificateStatus *certStatus)
619```
620
621**描述**
622
623获取设备DRM证书状态。
624
625**起始版本:** 11
626
627
628**参数:**
629
630| 参数项 | 描述 |
631| -- | -- |
632| [MediaKeySystem](capi-drm-mediakeysystem.md) *mediaKeySystem | MediaKeySystem实例。 |
633| [DRM_CertificateStatus](capi-native-drm-common-h.md#drm_certificatestatus) *certStatus | 设备DRM证书状态值。 |
634
635**返回:**
636
637| 类型 | 说明 |
638| -- | -- |
639| [Drm_ErrCode](capi-native-drm-err-h.md#drm_errcode) | DRM_ERR_OK:执行成功。<br>DRM_ERR_INVALID_VAL:输入参数mediaKeySystem为空指针或无效,或输入参数certStatus为空指针。<br>DRM_ERR_UNKNOWN:发生内部错误,请查看日志详细信息。 |
640
641### OH_MediaKeySystem_Destroy()
642
643```
644Drm_ErrCode OH_MediaKeySystem_Destroy(MediaKeySystem *mediaKeySystem)
645```
646
647**描述**
648
649销毁MediaKeySystem实例。
650
651**起始版本:** 11
652
653
654**参数:**
655
656| 参数项 | 描述 |
657| -- | -- |
658| [MediaKeySystem](capi-drm-mediakeysystem.md) *mediaKeySystem | MediaKeySystem实例。 |
659
660**返回:**
661
662| 类型 | 说明 |
663| -- | -- |
664| [Drm_ErrCode](capi-native-drm-err-h.md#drm_errcode) | DRM_ERR_OK:执行成功。<br>DRM_ERR_INVALID_VAL:输入参数mediaKeySystem为空指针或无效。<br>DRM_ERR_UNKNOWN:发生内部错误,请查看日志详细信息。 |
665
666
667