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