1# IMediaKeySystem
2
3
4## 概述
5
6DRM实例功能接口,判断是否支持特定DRM方案,创建DRM实例。
7
8**起始版本:** 4.1
9
10**相关模块:**[HdiDrm](_hdi_drm.md)
11
12
13## 汇总
14
15
16### Public 成员函数
17
18| 名称 | 描述 |
19| -------- | -------- |
20| [GetConfigurationString](#getconfigurationstring) ([in] String name, [out] String value) | 获取特定名称属性的字符串值(字符串)。 |
21| [SetConfigurationString](#setconfigurationstring) ([in] String name, [in] String value) | 设置特定名称属性的值(字符串)。 |
22| [GetConfigurationByteArray](#getconfigurationbytearray) ([in] String name, [out] unsigned char[] value) | 获取特定名称属性的值(字节数组)。 |
23| [SetConfigurationByteArray](#setconfigurationbytearray) ([in] String name, [in] unsigned char[] value) | 设置特定名称属性的值(字节数组)。 |
24| [GetStatistics](#getstatistics) ([out] Map< String, String > statistics) | 获取度量统计数据。 |
25| [GetMaxContentProtectionLevel](#getmaxcontentprotectionlevel) ([out] enum [ContentProtectionLevel](_hdi_drm.md#contentprotectionlevel) level) | 获取DRM方案支持的最大内容保护级别。 |
26| [GenerateKeySystemRequest](#generatekeysystemrequest) ([out] String defaultUrl, [out] unsigned char[] request) | 产生证书下载请求。 |
27| [ProcessKeySystemResponse](#processkeysystemresponse) ([in] unsigned char[] response) | 处理下载的证书。 |
28| [GetOemCertificateStatus](#getoemcertificatestatus) ([out] enum [CertificateStatus](_hdi_drm.md#certificatestatus) status) | 获取证书状态。 |
29| [SetCallback](#setcallback) ([in] [IMediaKeySystemCallback](interface_i_media_key_system_callback.md) systemCallback) | 设置DRM实例事件通知接口。 |
30| [CreateMediaKeySession](#createmediakeysession) ([in] enum [ContentProtectionLevel](_hdi_drm.md#contentprotectionlevel) level, [out] [IMediaKeySession](interface_i_media_key_session.md) keySession) | 创建DRM会话。 |
31| [GetOfflineMediaKeyIds](#getofflinemediakeyids) ([out] unsigned char[][] mediaKeyIds) | 获取离线许可证索引(数组)。 |
32| [GetOfflineMediaKeyStatus](#getofflinemediakeystatus) ([in] unsigned char[] mediaKeyId, [out] enum [OfflineMediaKeyStatus](_hdi_drm.md#offlinemediakeystatus) mediaKeyStatus) | 获取离线许可证状态。 |
33| [ClearOfflineMediaKeys](#clearofflinemediakeys) ([in] unsigned char[] mediaKeyId) | 删除离线许可证。 |
34| [GetOemCertificate](#getoemcertificate) ([out] [IOemCertificate](interface_i_oem_certificate.md) oemCert) | 获取证书下载接口。 |
35| [Destroy](#destroy) () | 销毁DRM实例。 |
36
37
38## 成员函数说明
39
40
41### ClearOfflineMediaKeys()
42
43```
44IMediaKeySystem::ClearOfflineMediaKeys ([in] unsigned char[] mediaKeyId)
45```
46
47**描述**
48
49
50删除离线许可证。
51
52**起始版本:** 4.1
53
54**参数:**
55
56| 名称 | 描述 |
57| -------- | -------- |
58| mediaKeyId | 离线许可证索引。 |
59
60**返回:**
61
620 表示执行成功。
63
64其他值表示执行失败。
65
66
67### CreateMediaKeySession()
68
69```
70IMediaKeySystem::CreateMediaKeySession ([in] enum ContentProtectionLevel level, [out] IMediaKeySession keySession )
71```
72
73**描述**
74
75
76创建DRM会话。
77
78**起始版本:** 4.1
79
80**参数:**
81
82| 名称 | 描述 |
83| -------- | -------- |
84| level | 待创建会话的内容保护等级。 |
85| keySession | 创建的DRM会话。 |
86
87**返回:**
88
890 表示执行成功。
90
91其他值表示执行失败。
92
93
94### Destroy()
95
96```
97IMediaKeySystem::Destroy ()
98```
99
100**描述**
101
102
103销毁DRM实例。
104
105**起始版本:** 4.1
106
107**返回:**
108
1090 表示执行成功。
110
111其他值表示执行失败。
112
113
114### GenerateKeySystemRequest()
115
116```
117IMediaKeySystem::GenerateKeySystemRequest ([out] String defaultUrl, [out] unsigned char[] request )
118```
119
120**描述**
121
122
123产生证书下载请求。
124
125**起始版本:** 4.1
126
127**参数:**
128
129| 名称 | 描述 |
130| -------- | -------- |
131| defaultUrl | 默认的证书服务器URL地址。 |
132| request | 证书下载请求报文,以字节数组定义。 |
133
134**返回:**
135
1360 表示执行成功。
137
138其他值表示执行失败。
139
140
141### GetConfigurationByteArray()
142
143```
144IMediaKeySystem::GetConfigurationByteArray ([in] String name, [out] unsigned char[] value )
145```
146
147**描述**
148
149
150获取特定名称属性的值(字节数组)。
151
152**起始版本:** 4.1
153
154**参数:**
155
156| 名称 | 描述 |
157| -------- | -------- |
158| name | 属性名。 |
159| value | 返回值。 |
160
161**返回:**
162
1630 表示执行成功。
164
165其他值表示执行失败。
166
167
168### GetConfigurationString()
169
170```
171IMediaKeySystem::GetConfigurationString ([in] String name, [out] String value )
172```
173
174**描述**
175
176
177获取特定名称属性的字符串值(字符串)。
178
179**起始版本:** 4.1
180
181**参数:**
182
183| 名称 | 描述 |
184| -------- | -------- |
185| name | 属性名。 |
186| value | 返回值。 |
187
188**返回:**
189
1900 表示执行成功。
191
192其他值表示执行失败。
193
194
195### GetMaxContentProtectionLevel()
196
197```
198IMediaKeySystem::GetMaxContentProtectionLevel ([out] enum ContentProtectionLevel level)
199```
200
201**描述**
202
203
204获取DRM方案支持的最大内容保护级别。
205
206**起始版本:** 4.1
207
208**参数:**
209
210| 名称 | 描述 |
211| -------- | -------- |
212| level | 内容保护级别。 |
213
214**返回:**
215
2160 表示执行成功。
217
218其他值表示执行失败。
219
220
221### GetOemCertificate()
222
223```
224IMediaKeySystem::GetOemCertificate ([out] IOemCertificate oemCert)
225```
226
227**描述**
228
229
230获取证书下载接口。
231
232**起始版本:** 4.1
233
234**参数:**
235
236| 名称 | 描述 |
237| -------- | -------- |
238| oemCert | 证书下载接口,参见[IOemCertificate](interface_i_oem_certificate.md)。 |
239
240**返回:**
241
2420 表示执行成功。
243
244其他值表示执行失败。
245
246
247### GetOemCertificateStatus()
248
249```
250IMediaKeySystem::GetOemCertificateStatus ([out] enum CertificateStatus status)
251```
252
253**描述**
254
255
256获取证书状态。
257
258**起始版本:** 4.1
259
260**参数:**
261
262| 名称 | 描述 |
263| -------- | -------- |
264| status | 证书状态。 |
265
266**返回:**
267
2680 表示执行成功。
269
270其他值表示执行失败。
271
272
273### GetOfflineMediaKeyIds()
274
275```
276IMediaKeySystem::GetOfflineMediaKeyIds ([out] unsigned char mediaKeyIds[][])
277```
278
279**描述**
280
281
282获取离线许可证索引(数组)。
283
284**起始版本:** 4.1
285
286**参数:**
287
288| 名称 | 描述 |
289| -------- | -------- |
290| mediaKeyIds | 离线许可证索引数组。 |
291
292**返回:**
293
2940 表示执行成功。
295
296其他值表示执行失败。
297
298
299### GetOfflineMediaKeyStatus()
300
301```
302IMediaKeySystem::GetOfflineMediaKeyStatus ([in] unsigned char[] mediaKeyId, [out] enum OfflineMediaKeyStatus mediaKeyStatus )
303```
304
305**描述**
306
307
308获取离线许可证状态。
309
310**起始版本:** 4.1
311
312**参数:**
313
314| 名称 | 描述 |
315| -------- | -------- |
316| mediaKeyId | 离线许可证索引。 |
317| mediaKeyStatus | 离线许可证状态。 |
318
319**返回:**
320
3210 表示执行成功。
322
323其他值表示执行失败。
324
325
326### GetStatistics()
327
328```
329IMediaKeySystem::GetStatistics ([out] Map< String, String > statistics)
330```
331
332**描述**
333
334
335获取度量统计数据。
336
337**起始版本:** 4.1
338
339**参数:**
340
341| 名称 | 描述 |
342| -------- | -------- |
343| statistics | DRM驱动自定义的度量统计数据,以字符串对形式表达。 |
344
345**返回:**
346
3470 表示执行成功。
348
349其他值表示执行失败。
350
351
352### ProcessKeySystemResponse()
353
354```
355IMediaKeySystem::ProcessKeySystemResponse ([in] unsigned char[] response)
356```
357
358**描述**
359
360
361处理下载的证书。
362
363**起始版本:** 4.1
364
365**参数:**
366
367| 名称 | 描述 |
368| -------- | -------- |
369| response | 下载的证书报文。 |
370
371**返回:**
372
3730 表示执行成功。
374
375其他值表示执行失败。
376
377
378### SetCallback()
379
380```
381IMediaKeySystem::SetCallback ([in] IMediaKeySystemCallback systemCallback)
382```
383
384**描述**
385
386
387设置DRM实例事件通知接口。
388
389**起始版本:** 4.1
390
391**参数:**
392
393| 名称 | 描述 |
394| -------- | -------- |
395| systemCallback | DRM实例事件通知接口。 |
396
397**返回:**
398
3990 表示执行成功。
400
401其他值表示执行失败。
402
403
404### SetConfigurationByteArray()
405
406```
407IMediaKeySystem::SetConfigurationByteArray ([in] String name, [in] unsigned char[] value )
408```
409
410**描述**
411
412
413设置特定名称属性的值(字节数组)。
414
415**起始版本:** 4.1
416
417**参数:**
418
419| 名称 | 描述 |
420| -------- | -------- |
421| name | 属性名。 |
422| value | 待设置字节数组。 |
423
424**返回:**
425
4260 表示执行成功。
427
428其他值表示执行失败。
429
430
431### SetConfigurationString()
432
433```
434IMediaKeySystem::SetConfigurationString ([in] String name, [in] String value )
435```
436
437**描述**
438
439
440设置特定名称属性的值(字符串)。
441
442**起始版本:** 4.1
443
444**参数:**
445
446| 名称 | 描述 |
447| -------- | -------- |
448| name | 属性名。 |
449| value | 待设置字符串。 |
450
451**返回:**
452
4530 表示执行成功。
454
455其他值表示执行失败。
456