• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# IMediaKeySession
2
3
4## 概述
5
6DRM会话功能接口,获取/设置许可证、查询当前会话许可证状态、删除当前会话许可证、释放许可证、恢复离线许可证、 判断是否需要安全内存中解密、获取解密模块实例、设置会话消息通知接口、销毁会话。
7
8**起始版本:** 4.1
9
10**相关模块:**[HdiDrm](_hdi_drm.md)
11
12
13## 汇总
14
15
16### Public 成员函数
17
18| 名称 | 描述 |
19| -------- | -------- |
20| [GenerateMediaKeyRequest](#generatemediakeyrequest) ([in] struct [MediaKeyRequestInfo](_media_key_request_info.md) mediaKeyRequestInfo, [out] struct [MediaKeyRequest](_media_key_request.md) mediaKeyRequest) | 产生获取许可证请求。  |
21| [ProcessMediaKeyResponse](#processmediakeyresponse) ([in] unsigned char[] mediaKeyResponse, [out] unsigned char[] mediaKeyId) | 处理许可证响应。  |
22| [CheckMediaKeyStatus](#checkmediakeystatus) ([out] Map< String, String > mediaKeyStatus) | 查询许可证状态(包括策略等信息)。  |
23| [ClearMediaKeys](#clearmediakeys) () | 删除许可证。  |
24| [GetOfflineReleaseRequest](#getofflinereleaserequest) ([in] unsigned char[] mediaKeyId, [out] unsigned char[] releaseRequest) | 产生离线许可证释放请求。  |
25| [ProcessOfflineReleaseResponse](#processofflinereleaseresponse) ([in] unsigned char[] mediaKeyId, [in] unsigned char[] response) | 处理离线许可证释放响应。  |
26| [RestoreOfflineMediaKeys](#restoreofflinemediakeys) ([in] unsigned char[] mediaKeyId) | 恢复离线许可证至当前会话。  |
27| [GetContentProtectionLevel](#getcontentprotectionlevel) ([out] enum [ContentProtectionLevel](_hdi_drm.md#contentprotectionlevel) level) | 获取当前DRM会话的内容保护级别。  |
28| [RequiresSecureDecoderModule](#requiressecuredecodermodule) ([in] String mimeType, [out] boolean required) | 判断是否需要安全内存用于存放解密后的数据。  |
29| [SetCallback](#setcallback) ([in] [IMediaKeySessionCallback](interface_i_media_key_session_callback.md) sessionCallback) | 设置DRM会话事件通知接口。  |
30| [GetMediaDecryptModule](#getmediadecryptmodule) ([out] [IMediaDecryptModule](interface_i_media_decrypt_module.md) decryptModule) | 获取解密模块实例。  |
31| [Destroy](#destroy) () | 销毁DRM会话。  |
32
33
34## 成员函数说明
35
36
37### CheckMediaKeyStatus()
38
39```
40IMediaKeySession::CheckMediaKeyStatus ([out] Map< String, String > mediaKeyStatus)
41```
42**描述**
43查询许可证状态(包括策略等信息)。
44
45**起始版本:** 4.1
46
47**参数:**
48
49| 名称 | 描述 |
50| -------- | -------- |
51| mediaKeyStatus | 许可证状态。 |
52
53**返回:**
54
550 表示执行成功。
56
57其他值表示执行失败。
58
59
60### ClearMediaKeys()
61
62```
63IMediaKeySession::ClearMediaKeys ()
64```
65**描述**
66删除许可证。
67
68**起始版本:** 4.1
69
70**返回:**
71
720 表示执行成功。
73
74其他值表示执行失败。
75
76
77### Destroy()
78
79```
80IMediaKeySession::Destroy ()
81```
82**描述**
83销毁DRM会话。
84
85**起始版本:** 4.1
86
87**返回:**
88
890 表示执行成功。
90
91其他值表示执行失败。
92
93
94### GenerateMediaKeyRequest()
95
96```
97IMediaKeySession::GenerateMediaKeyRequest ([in] struct MediaKeyRequestInfo mediaKeyRequestInfo, [out] struct MediaKeyRequest mediaKeyRequest )
98```
99**描述**
100产生获取许可证请求。
101
102**起始版本:** 4.1
103
104**参数:**
105
106| 名称 | 描述 |
107| -------- | -------- |
108| mediaKeyRequestInfo | 用于产生许可证请求的初始信息。  |
109| mediaKeyRequest | 许可证请求。 |
110
111**返回:**
112
1130 表示执行成功。
114
115其他值表示执行失败。
116
117
118### GetContentProtectionLevel()
119
120```
121IMediaKeySession::GetContentProtectionLevel ([out] enum ContentProtectionLevel level)
122```
123**描述**
124获取当前DRM会话的内容保护级别。
125
126**起始版本:** 4.1
127
128**参数:**
129
130| 名称 | 描述 |
131| -------- | -------- |
132| level | 内容保护级别。 |
133
134**返回:**
135
1360 表示执行成功。
137
138其他值表示执行失败。
139
140
141### GetMediaDecryptModule()
142
143```
144IMediaKeySession::GetMediaDecryptModule ([out] IMediaDecryptModule decryptModule)
145```
146**描述**
147获取解密模块实例。
148
149**起始版本:** 4.1
150
151**参数:**
152
153| 名称 | 描述 |
154| -------- | -------- |
155| decryptModule | 解密模块实例。 |
156
157**返回:**
158
1590 表示执行成功。
160
161其他值表示执行失败。
162
163
164### GetOfflineReleaseRequest()
165
166```
167IMediaKeySession::GetOfflineReleaseRequest ([in] unsigned char[] mediaKeyId, [out] unsigned char[] releaseRequest )
168```
169**描述**
170产生离线许可证释放请求。
171
172**起始版本:** 4.1
173
174**参数:**
175
176| 名称 | 描述 |
177| -------- | -------- |
178| mediaKeyId | 离线许可证索引。  |
179| releaseRequest | 离线许可证释放请求。 |
180
181**返回:**
182
1830 表示执行成功。
184
185其他值表示执行失败。
186
187
188### ProcessMediaKeyResponse()
189
190```
191IMediaKeySession::ProcessMediaKeyResponse ([in] unsigned char[] mediaKeyResponse, [out] unsigned char[] mediaKeyId )
192```
193**描述**
194处理许可证响应。
195
196**起始版本:** 4.1
197
198**参数:**
199
200| 名称 | 描述 |
201| -------- | -------- |
202| mediaKeyResponse | 待处理的许可证响应。  |
203| mediaKeyId | 对于离线许可证类型,表示索引;在线许可证类型下,值为空。 |
204
205**返回:**
206
2070 表示执行成功。
208
209其他值表示执行失败。
210
211
212### ProcessOfflineReleaseResponse()
213
214```
215IMediaKeySession::ProcessOfflineReleaseResponse ([in] unsigned char[] mediaKeyId, [in] unsigned char[] response )
216```
217**描述**
218处理离线许可证释放响应。
219
220**起始版本:** 4.1
221
222**参数:**
223
224| 名称 | 描述 |
225| -------- | -------- |
226| mediaKeyId | 离线许可证索引。  |
227| response | 离线许可证释放响应。 |
228
229**返回:**
230
2310 表示执行成功。
232
233其他值表示执行失败。
234
235
236### RequiresSecureDecoderModule()
237
238```
239IMediaKeySession::RequiresSecureDecoderModule ([in] String mimeType, [out] boolean required )
240```
241**描述**
242判断是否需要安全内存用于存放解密后的数据。
243
244**起始版本:** 4.1
245
246**参数:**
247
248| 名称 | 描述 |
249| -------- | -------- |
250| mimeType | 待解密内容的MIME类型。  |
251| required | 布尔值表示是否需要安全内存,true表示需要安全内存存储解密后的视频帧, flase表示不需要安全内存存储解密后的视频帧。 |
252
253**返回:**
254
2550 表示执行成功。
256
257其他值表示执行失败。
258
259
260### RestoreOfflineMediaKeys()
261
262```
263IMediaKeySession::RestoreOfflineMediaKeys ([in] unsigned char[] mediaKeyId)
264```
265**描述**
266恢复离线许可证至当前会话。
267
268**起始版本:** 4.1
269
270**参数:**
271
272| 名称 | 描述 |
273| -------- | -------- |
274| mediaKeyId | 离线许可证索引。 |
275
276**返回:**
277
2780 表示执行成功。
279
280其他值表示执行失败。
281
282
283### SetCallback()
284
285```
286IMediaKeySession::SetCallback ([in] IMediaKeySessionCallback sessionCallback)
287```
288**描述**
289设置DRM会话事件通知接口。
290
291**起始版本:** 4.1
292
293**参数:**
294
295| 名称 | 描述 |
296| -------- | -------- |
297| sessionCallback | DRM实例事件通知接口。 |
298
299**返回:**
300
3010 表示执行成功。
302
303其他值表示执行失败。
304