# IMediaKeySystem ## 概述 DRM实例功能接å£ï¼Œåˆ¤æ–æ˜¯å¦æ”¯æŒç‰¹å®šDRM方案,创建DRM实例。 **起始版本:** 4.1 **相关模å—:**[HdiDrm](_hdi_drm.md) ## 汇总 ### Public æˆå‘˜å‡½æ•° | åç§° | æè¿° | | -------- | -------- | | [GetConfigurationString](#getconfigurationstring) ([in] String name, [out] String value) | 获å–特定å称属性的å—符串值(å—符串)。 | | [SetConfigurationString](#setconfigurationstring) ([in] String name, [in] String value) | 设置特定å称属性的值(å—符串)。 | | [GetConfigurationByteArray](#getconfigurationbytearray) ([in] String name, [out] unsigned char[] value) | 获å–特定å称属性的值(å—节数组)。 | | [SetConfigurationByteArray](#setconfigurationbytearray) ([in] String name, [in] unsigned char[] value) | 设置特定å称属性的值(å—节数组)。 | | [GetStatistics](#getstatistics) ([out] Map< String, String > statistics) | 获å–度é‡ç»Ÿè®¡æ•°æ®ã€‚ | | [GetMaxContentProtectionLevel](#getmaxcontentprotectionlevel) ([out] enum [ContentProtectionLevel](_hdi_drm.md#contentprotectionlevel) level) | 获å–DRM方案支æŒçš„æœ€å¤§å†…å®¹ä¿æŠ¤çº§åˆ«ã€‚ | | [GenerateKeySystemRequest](#generatekeysystemrequest) ([out] String defaultUrl, [out] unsigned char[] request) | 产生è¯ä¹¦ä¸‹è½½è¯·æ±‚。 | | [ProcessKeySystemResponse](#processkeysystemresponse) ([in] unsigned char[] response) | 处ç†ä¸‹è½½çš„è¯ä¹¦ã€‚ | | [GetOemCertificateStatus](#getoemcertificatestatus) ([out] enum [CertificateStatus](_hdi_drm.md#certificatestatus) status) | 获å–è¯ä¹¦çжæ€ã€‚ | | [SetCallback](#setcallback) ([in] [IMediaKeySystemCallback](interface_i_media_key_system_callback.md) systemCallback) | 设置DRM实例事件通知接å£ã€‚ | | [CreateMediaKeySession](#createmediakeysession) ([in] enum [ContentProtectionLevel](_hdi_drm.md#contentprotectionlevel) level, [out] [IMediaKeySession](interface_i_media_key_session.md) keySession) | 创建DRM会è¯ã€‚ | | [GetOfflineMediaKeyIds](#getofflinemediakeyids) ([out] unsigned char[][] mediaKeyIds) | 获å–离线许å¯è¯ç´¢å¼•(数组)。 | | [GetOfflineMediaKeyStatus](#getofflinemediakeystatus) ([in] unsigned char[] mediaKeyId, [out] enum [OfflineMediaKeyStatus](_hdi_drm.md#offlinemediakeystatus) mediaKeyStatus) | 获å–离线许å¯è¯çжæ€ã€‚ | | [ClearOfflineMediaKeys](#clearofflinemediakeys) ([in] unsigned char[] mediaKeyId) | åˆ é™¤ç¦»çº¿è®¸å¯è¯ã€‚ | | [GetOemCertificate](#getoemcertificate) ([out] [IOemCertificate](interface_i_oem_certificate.md) oemCert) | 获å–è¯ä¹¦ä¸‹è½½æŽ¥å£ã€‚ | | [Destroy](#destroy) () | 销æ¯DRM实例。 | ## æˆå‘˜å‡½æ•°è¯´æ˜Ž ### ClearOfflineMediaKeys() ``` IMediaKeySystem::ClearOfflineMediaKeys ([in] unsigned char[] mediaKeyId) ``` **æè¿°** åˆ é™¤ç¦»çº¿è®¸å¯è¯ã€‚ **起始版本:** 4.1 **傿•°:** | åç§° | æè¿° | | -------- | -------- | | mediaKeyId | 离线许å¯è¯ç´¢å¼•。 | **返回:** 0 表示执行æˆåŠŸã€‚ 其他值表示执行失败。 ### CreateMediaKeySession() ``` IMediaKeySystem::CreateMediaKeySession ([in] enum ContentProtectionLevel level, [out] IMediaKeySession keySession ) ``` **æè¿°** 创建DRM会è¯ã€‚ **起始版本:** 4.1 **傿•°:** | åç§° | æè¿° | | -------- | -------- | | level | 待创建会è¯çš„å†…å®¹ä¿æŠ¤ç‰çº§ã€‚ | | keySession | 创建的DRM会è¯ã€‚ | **返回:** 0 表示执行æˆåŠŸã€‚ 其他值表示执行失败。 ### Destroy() ``` IMediaKeySystem::Destroy () ``` **æè¿°** 销æ¯DRM实例。 **起始版本:** 4.1 **返回:** 0 表示执行æˆåŠŸã€‚ 其他值表示执行失败。 ### GenerateKeySystemRequest() ``` IMediaKeySystem::GenerateKeySystemRequest ([out] String defaultUrl, [out] unsigned char[] request ) ``` **æè¿°** 产生è¯ä¹¦ä¸‹è½½è¯·æ±‚。 **起始版本:** 4.1 **傿•°:** | åç§° | æè¿° | | -------- | -------- | | defaultUrl | 默认的è¯ä¹¦æœåС噍URL地å€ã€‚ | | request | è¯ä¹¦ä¸‹è½½è¯·æ±‚报文,以å—节数组定义。 | **返回:** 0 表示执行æˆåŠŸã€‚ 其他值表示执行失败。 ### GetConfigurationByteArray() ``` IMediaKeySystem::GetConfigurationByteArray ([in] String name, [out] unsigned char[] value ) ``` **æè¿°** 获å–特定å称属性的值(å—节数组)。 **起始版本:** 4.1 **傿•°:** | åç§° | æè¿° | | -------- | -------- | | name | 属性å。 | | value | 返回值。 | **返回:** 0 表示执行æˆåŠŸã€‚ 其他值表示执行失败。 ### GetConfigurationString() ``` IMediaKeySystem::GetConfigurationString ([in] String name, [out] String value ) ``` **æè¿°** 获å–特定å称属性的å—符串值(å—符串)。 **起始版本:** 4.1 **傿•°:** | åç§° | æè¿° | | -------- | -------- | | name | 属性å。 | | value | 返回值。 | **返回:** 0 表示执行æˆåŠŸã€‚ 其他值表示执行失败。 ### GetMaxContentProtectionLevel() ``` IMediaKeySystem::GetMaxContentProtectionLevel ([out] enum ContentProtectionLevel level) ``` **æè¿°** 获å–DRM方案支æŒçš„æœ€å¤§å†…å®¹ä¿æŠ¤çº§åˆ«ã€‚ **起始版本:** 4.1 **傿•°:** | åç§° | æè¿° | | -------- | -------- | | level | å†…å®¹ä¿æŠ¤çº§åˆ«ã€‚ | **返回:** 0 表示执行æˆåŠŸã€‚ 其他值表示执行失败。 ### GetOemCertificate() ``` IMediaKeySystem::GetOemCertificate ([out] IOemCertificate oemCert) ``` **æè¿°** 获å–è¯ä¹¦ä¸‹è½½æŽ¥å£ã€‚ **起始版本:** 4.1 **傿•°:** | åç§° | æè¿° | | -------- | -------- | | oemCert | è¯ä¹¦ä¸‹è½½æŽ¥å£ï¼Œå‚è§[IOemCertificate](interface_i_oem_certificate.md)。 | **返回:** 0 表示执行æˆåŠŸã€‚ 其他值表示执行失败。 ### GetOemCertificateStatus() ``` IMediaKeySystem::GetOemCertificateStatus ([out] enum CertificateStatus status) ``` **æè¿°** 获å–è¯ä¹¦çжæ€ã€‚ **起始版本:** 4.1 **傿•°:** | åç§° | æè¿° | | -------- | -------- | | status | è¯ä¹¦çжæ€ã€‚ | **返回:** 0 表示执行æˆåŠŸã€‚ 其他值表示执行失败。 ### GetOfflineMediaKeyIds() ``` IMediaKeySystem::GetOfflineMediaKeyIds ([out] unsigned char mediaKeyIds[][]) ``` **æè¿°** 获å–离线许å¯è¯ç´¢å¼•(数组)。 **起始版本:** 4.1 **傿•°:** | åç§° | æè¿° | | -------- | -------- | | mediaKeyIds | 离线许å¯è¯ç´¢å¼•数组。 | **返回:** 0 表示执行æˆåŠŸã€‚ 其他值表示执行失败。 ### GetOfflineMediaKeyStatus() ``` IMediaKeySystem::GetOfflineMediaKeyStatus ([in] unsigned char[] mediaKeyId, [out] enum OfflineMediaKeyStatus mediaKeyStatus ) ``` **æè¿°** 获å–离线许å¯è¯çжæ€ã€‚ **起始版本:** 4.1 **傿•°:** | åç§° | æè¿° | | -------- | -------- | | mediaKeyId | 离线许å¯è¯ç´¢å¼•。 | | mediaKeyStatus | 离线许å¯è¯çжæ€ã€‚ | **返回:** 0 表示执行æˆåŠŸã€‚ 其他值表示执行失败。 ### GetStatistics() ``` IMediaKeySystem::GetStatistics ([out] Map< String, String > statistics) ``` **æè¿°** 获å–度é‡ç»Ÿè®¡æ•°æ®ã€‚ **起始版本:** 4.1 **傿•°:** | åç§° | æè¿° | | -------- | -------- | | statistics | DRM驱动自定义的度é‡ç»Ÿè®¡æ•°æ®ï¼Œä»¥å—符串对形å¼è¡¨è¾¾ã€‚ | **返回:** 0 表示执行æˆåŠŸã€‚ 其他值表示执行失败。 ### ProcessKeySystemResponse() ``` IMediaKeySystem::ProcessKeySystemResponse ([in] unsigned char[] response) ``` **æè¿°** 处ç†ä¸‹è½½çš„è¯ä¹¦ã€‚ **起始版本:** 4.1 **傿•°:** | åç§° | æè¿° | | -------- | -------- | | response | 下载的è¯ä¹¦æŠ¥æ–‡ã€‚ | **返回:** 0 表示执行æˆåŠŸã€‚ 其他值表示执行失败。 ### SetCallback() ``` IMediaKeySystem::SetCallback ([in] IMediaKeySystemCallback systemCallback) ``` **æè¿°** 设置DRM实例事件通知接å£ã€‚ **起始版本:** 4.1 **傿•°:** | åç§° | æè¿° | | -------- | -------- | | systemCallback | DRM实例事件通知接å£ã€‚ | **返回:** 0 表示执行æˆåŠŸã€‚ 其他值表示执行失败。 ### SetConfigurationByteArray() ``` IMediaKeySystem::SetConfigurationByteArray ([in] String name, [in] unsigned char[] value ) ``` **æè¿°** 设置特定å称属性的值(å—节数组)。 **起始版本:** 4.1 **傿•°:** | åç§° | æè¿° | | -------- | -------- | | name | 属性å。 | | value | 待设置å—节数组。 | **返回:** 0 表示执行æˆåŠŸã€‚ 其他值表示执行失败。 ### SetConfigurationString() ``` IMediaKeySystem::SetConfigurationString ([in] String name, [in] String value ) ``` **æè¿°** 设置特定å称属性的值(å—符串)。 **起始版本:** 4.1 **傿•°:** | åç§° | æè¿° | | -------- | -------- | | name | 属性å。 | | value | 待设置å—符串。 | **返回:** 0 表示执行æˆåŠŸã€‚ 其他值表示执行失败。