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**起始版本:** 4.1 50 51**参数:** 52 53| 名称 | 描述 | 54| -------- | -------- | 55| mediaKeyId | 离线许可证索引。 | 56 57**返回:** 58 590 表示执行成功。 60 61其他值表示执行失败。 62 63 64### CreateMediaKeySession() 65 66``` 67IMediaKeySystem::CreateMediaKeySession ([in] enum ContentProtectionLevel level, [out] IMediaKeySession keySession ) 68``` 69**描述** 70创建DRM会话。 71 72**起始版本:** 4.1 73 74**参数:** 75 76| 名称 | 描述 | 77| -------- | -------- | 78| level | 待创建会话的内容保护等级。 | 79| keySession | 创建的DRM会话。 | 80 81**返回:** 82 830 表示执行成功。 84 85其他值表示执行失败。 86 87 88### Destroy() 89 90``` 91IMediaKeySystem::Destroy () 92``` 93**描述** 94销毁DRM实例。 95 96**起始版本:** 4.1 97 98**返回:** 99 1000 表示执行成功。 101 102其他值表示执行失败。 103 104 105### GenerateKeySystemRequest() 106 107``` 108IMediaKeySystem::GenerateKeySystemRequest ([out] String defaultUrl, [out] unsigned char[] request ) 109``` 110**描述** 111产生证书下载请求。 112 113**起始版本:** 4.1 114 115**参数:** 116 117| 名称 | 描述 | 118| -------- | -------- | 119| defaultUrl | 默认的证书服务器URL地址。 | 120| request | 证书下载请求报文,以字节数组定义。 | 121 122**返回:** 123 1240 表示执行成功。 125 126其他值表示执行失败。 127 128 129### GetConfigurationByteArray() 130 131``` 132IMediaKeySystem::GetConfigurationByteArray ([in] String name, [out] unsigned char[] value ) 133``` 134**描述** 135获取特定名称属性的值(字节数组)。 136 137**起始版本:** 4.1 138 139**参数:** 140 141| 名称 | 描述 | 142| -------- | -------- | 143| name | 属性名。 | 144| value | 返回值。 | 145 146**返回:** 147 1480 表示执行成功。 149 150其他值表示执行失败。 151 152 153### GetConfigurationString() 154 155``` 156IMediaKeySystem::GetConfigurationString ([in] String name, [out] String value ) 157``` 158**描述** 159获取特定名称属性的字符串值(字符串)。 160 161**起始版本:** 4.1 162 163**参数:** 164 165| 名称 | 描述 | 166| -------- | -------- | 167| name | 属性名。 | 168| value | 返回值。 | 169 170**返回:** 171 1720 表示执行成功。 173 174其他值表示执行失败。 175 176 177### GetMaxContentProtectionLevel() 178 179``` 180IMediaKeySystem::GetMaxContentProtectionLevel ([out] enum ContentProtectionLevel level) 181``` 182**描述** 183获取DRM方案支持的最大内容保护级别。 184 185**起始版本:** 4.1 186 187**参数:** 188 189| 名称 | 描述 | 190| -------- | -------- | 191| level | 内容保护级别。 | 192 193**返回:** 194 1950 表示执行成功。 196 197其他值表示执行失败。 198 199 200### GetOemCertificate() 201 202``` 203IMediaKeySystem::GetOemCertificate ([out] IOemCertificate oemCert) 204``` 205**描述** 206获取证书下载接口。 207 208**起始版本:** 4.1 209 210**参数:** 211 212| 名称 | 描述 | 213| -------- | -------- | 214| oemCert | 证书下载接口,参见IOemCertificate。 | 215 216**返回:** 217 2180 表示执行成功。 219 220其他值表示执行失败。 221 222 223### GetOemCertificateStatus() 224 225``` 226IMediaKeySystem::GetOemCertificateStatus ([out] enum CertificateStatus status) 227``` 228**描述** 229获取证书状态。 230 231**起始版本:** 4.1 232 233**参数:** 234 235| 名称 | 描述 | 236| -------- | -------- | 237| status | 证书状态。 | 238 239**返回:** 240 2410 表示执行成功。 242 243其他值表示执行失败。 244 245 246### GetOfflineMediaKeyIds() 247 248``` 249IMediaKeySystem::GetOfflineMediaKeyIds ([out] unsigned char mediaKeyIds[][]) 250``` 251**描述** 252获取离线许可证索引(数组)。 253 254**起始版本:** 4.1 255 256**参数:** 257 258| 名称 | 描述 | 259| -------- | -------- | 260| mediaKeyIds | 离线许可证索引数组。 | 261 262**返回:** 263 2640 表示执行成功。 265 266其他值表示执行失败。 267 268 269### GetOfflineMediaKeyStatus() 270 271``` 272IMediaKeySystem::GetOfflineMediaKeyStatus ([in] unsigned char[] mediaKeyId, [out] enum OfflineMediaKeyStatus mediaKeyStatus ) 273``` 274**描述** 275获取离线许可证状态。 276 277**起始版本:** 4.1 278 279**参数:** 280 281| 名称 | 描述 | 282| -------- | -------- | 283| mediaKeyId | 离线许可证索引。 | 284| mediaKeyStatus | 离线许可证状态。 | 285 286**返回:** 287 2880 表示执行成功。 289 290其他值表示执行失败。 291 292 293### GetStatistics() 294 295``` 296IMediaKeySystem::GetStatistics ([out] Map< String, String > statistics) 297``` 298**描述** 299获取度量统计数据。 300 301**起始版本:** 4.1 302 303**参数:** 304 305| 名称 | 描述 | 306| -------- | -------- | 307| statistics | DRM驱动自定义的度量统计数据,以字符串对形式表达。 | 308 309**返回:** 310 3110 表示执行成功。 312 313其他值表示执行失败。 314 315 316### ProcessKeySystemResponse() 317 318``` 319IMediaKeySystem::ProcessKeySystemResponse ([in] unsigned char[] response) 320``` 321**描述** 322处理下载的证书。 323 324**起始版本:** 4.1 325 326**参数:** 327 328| 名称 | 描述 | 329| -------- | -------- | 330| response | 下载的证书报文。 | 331 332**返回:** 333 3340 表示执行成功。 335 336其他值表示执行失败。 337 338 339### SetCallback() 340 341``` 342IMediaKeySystem::SetCallback ([in] IMediaKeySystemCallback systemCallback) 343``` 344**描述** 345设置DRM实例事件通知接口。 346 347**起始版本:** 4.1 348 349**参数:** 350 351| 名称 | 描述 | 352| -------- | -------- | 353| systemCallback | DRM实例事件通知接口。 | 354 355**返回:** 356 3570 表示执行成功。 358 359其他值表示执行失败。 360 361 362### SetConfigurationByteArray() 363 364``` 365IMediaKeySystem::SetConfigurationByteArray ([in] String name, [in] unsigned char[] value ) 366``` 367**描述** 368设置特定名称属性的值(字节数组)。 369 370**起始版本:** 4.1 371 372**参数:** 373 374| 名称 | 描述 | 375| -------- | -------- | 376| name | 属性名。 | 377| value | 待设置字节数组。 | 378 379**返回:** 380 3810 表示执行成功。 382 383其他值表示执行失败。 384 385 386### SetConfigurationString() 387 388``` 389IMediaKeySystem::SetConfigurationString ([in] String name, [in] String value ) 390``` 391**描述** 392设置特定名称属性的值(字符串)。 393 394**起始版本:** 4.1 395 396**参数:** 397 398| 名称 | 描述 | 399| -------- | -------- | 400| name | 属性名。 | 401| value | 待设置字符串。 | 402 403**返回:** 404 4050 表示执行成功。 406 407其他值表示执行失败。 408