# Functions > **说明:** > > 本模块首批接口从API version 11开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 ## 导入模块 ```ts import { drm } from '@kit.DrmKit'; ``` ## drm.createMediaKeySystem createMediaKeySystem(name: string): MediaKeySystem 创建MediaKeySystem实例。 **原子化服务API:** 从API version 14开始,该接口支持在原子化服务中使用。 **系统能力:** SystemCapability.Multimedia.Drm.Core **参数:** | 参数名 | 类型 | 必填 | 说明 | | -------- | ----------------------------------------------- | ---- | ---------------------------- | | name | string | 是 | DRM解决方案名称,如"com.clearplay.drm"。 | **返回值:** | 类型 | 说明 | | ----------------------------------------------- | ---------------------------- | | [MediaKeySystem](arkts-apis-drm-MediaKeySystem.md) | MediaKeySystem实例。 | **错误码:** 以下错误码的详细介绍请参见[DRM错误码](errorcode-drm.md)。 | 错误码ID | 错误信息 | | --------------- | --------------- | | 401 | The parameter check failed. Possibly because: 1.Mandatory parameters are left unspecified. 2.Parameter verification failed. | | 24700101 | All unknown errors | | 24700103 | Meet max MediaKeySystem num limit | | 24700201 | Fatal service error, for example, service died | **示例:** ```ts import { drm } from '@kit.DrmKit'; import { BusinessError } from '@kit.BasicServicesKit'; try { let mediaKeySystem: drm.MediaKeySystem = drm.createMediaKeySystem("com.clearplay.drm"); } catch (err) { let error = err as BusinessError; console.error(`createMediaKeySystem ERROR: ${error}`); } ``` ## drm.isMediaKeySystemSupported isMediaKeySystemSupported(name: string): boolean 判断设备是否支持指定的DRM解决方案。 **原子化服务API:** 从API version 14开始,该接口支持在原子化服务中使用。 **系统能力:** SystemCapability.Multimedia.Drm.Core **参数:** | 参数名 | 类型 | 必填 | 说明 | | -------- | ----------------------------------------------- | ---- | ---------------------------- | | name | string | 是 | DRM解决方案名称,如"com.clearplay.drm"。 | **返回值:** | 类型 | 说明 | | ----------------------------------------------- | ---------------------------- | | boolean | 返回是否支持。true表示支持指定的DRM解决方案,false表示不支持指定的DRM解决方案。 | **错误码:** 以下错误码的详细介绍请参见[DRM错误码](errorcode-drm.md)。 | 错误码ID | 错误信息 | | --------------- | --------------- | | 401 | The parameter check failed. Possibly because: 1.Mandatory parameters are left unspecified. 2.Parameter verification failed, the param name's length is zero or too big(exceeds 4096 Bytes). | | 24700101 | All unknown errors | | 24700201 | Fatal service error, for example, service died | **示例:** ```ts import { drm } from '@kit.DrmKit'; import { BusinessError } from '@kit.BasicServicesKit'; try { let supported: boolean = drm.isMediaKeySystemSupported("com.clearplay.drm"); console.log("isMediaKeySystemSupported: ", supported); } catch (err) { let error = err as BusinessError; console.error(`isMediaKeySystemSupported ERROR: ${error}`); } ``` ## drm.isMediaKeySystemSupported isMediaKeySystemSupported(name: string, mimeType: string): boolean 判断设备是否支持指定DRM解决方案及媒体类型。 **原子化服务API:** 从API version 14开始,该接口支持在原子化服务中使用。 **系统能力:** SystemCapability.Multimedia.Drm.Core **参数:** | 参数名 | 类型 | 必填 | 说明 | | -------- | ----------------------------------------------- | ---- |-------------------------------------------------------------------------------------------------------------| | name | string | 是 | DRM解决方案名称。建议先调用[isMediaKeySystemSupported](arkts-apis-drm-f.md#drmismediakeysystemsupported)判断是否是支持的解决方案名称。 | | mimeType | string | 是 | 媒体类型,支持的媒体类型取决于DRM解决方案,如:video/avc、video/hev。 | **返回值:** | 类型 | 说明 | | ----------------------------------------------- | ---------------------------- | | boolean | 返回是否支持。true表示支持指定DRM解决方案及媒体类型,false表示不支持指定DRM解决方案及媒体类型。 | **错误码:** 以下错误码的详细介绍请参见[DRM错误码](errorcode-drm.md)。 | 错误码ID | 错误信息 | | --------------- | --------------- | | 401 | The parameter check failed. Possibly because: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. 3.Parameter verification failed. | | 24700101 | All unknown errors | | 24700201 | Fatal service error, for example, service died | **示例:** ```ts import { drm } from '@kit.DrmKit'; import { BusinessError } from '@kit.BasicServicesKit'; try { let supported: boolean = drm.isMediaKeySystemSupported("com.clearplay.drm", "video/avc"); console.log("isMediaKeySystemSupported: ", supported); } catch (err) { let error = err as BusinessError; console.error(`isMediaKeySystemSupported ERROR: ${error}`); } ``` ## drm.isMediaKeySystemSupported isMediaKeySystemSupported(name: string, mimeType: string, level: ContentProtectionLevel): boolean 判断设备是否支持指定DRM解决方案、媒体类型以及内容保护级别。 **原子化服务API:** 从API version 14开始,该接口支持在原子化服务中使用。 **系统能力:** SystemCapability.Multimedia.Drm.Core **参数:** | 参数名 | 类型 | 必填 | 说明 | | -------- | ----------------------------------------------- | ---- |-------------------------------------------------------------------------------------------------------------------------------| | name | string | 是 | DRM解决方案名称。建议先调用[isMediaKeySystemSupported](arkts-apis-drm-f.md#drmismediakeysystemsupported)判断是否是支持的解决方案名称。 | | mimeType | string | 是 | 媒体类型,支持的媒体类型取决于DRM解决方案。建议先调用[isMediaKeySystemSupported](arkts-apis-drm-f.md#drmismediakeysystemsupported-1)判断是否是DRM解决方案支持的类型。 | | level | [ContentProtectionLevel](arkts-apis-drm-e.md#contentprotectionlevel) | 是 | 内容保护级别。 | **返回值:** | 类型 | 说明 | | ----------------------------------------------- | ---------------------------- | | boolean | 返回是否支持。true表示支持指定DRM解决方案、媒体类型以及内容保护级别,false表示不支持指定DRM解决方案、媒体类型以及内容保护级别。 | **错误码:** 以下错误码的详细介绍请参见[DRM错误码](errorcode-drm.md)。 | 错误码ID | 错误信息 | | --------------- | --------------- | | 401 | The parameter check failed. Possibly because: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. 3.Parameter verification failed. | | 24700101 | All unknown errors | | 24700201 | Fatal service error, for example, service died | **示例:** ```ts import { drm } from '@kit.DrmKit'; import { BusinessError } from '@kit.BasicServicesKit'; try { let supported: boolean = drm.isMediaKeySystemSupported("com.clearplay.drm", "video/avc", drm.ContentProtectionLevel.CONTENT_PROTECTION_LEVEL_SW_CRYPTO); console.log("isMediaKeySystemSupported: ", supported); } catch (err) { let error = err as BusinessError; console.error(`isMediaKeySystemSupported ERROR: ${error}`); } ``` ## drm.getMediaKeySystemUuid12+ getMediaKeySystemUuid(name: string): string; 获取DRM解决方案支持的DRM内容保护系统唯一标识。 **原子化服务API:** 从API version 14开始,该接口支持在原子化服务中使用。 **系统能力:** SystemCapability.Multimedia.Drm.Core **参数:** | 参数名 | 类型 | 必填 | 说明 | | -------- | ----------------------------------------------- | ---- | ---------------------------- | | name | string | 是 | DRM解决方案名称,支持的解决方案名称可通过[isMediaKeySystemSupported](arkts-apis-drm-f.md#drmismediakeysystemsupported)判断。 | **返回值:** | 类型 | 说明 | | ----------------------------------------------- | ---------------------------- | | string | DRM内容保护系统的唯一标识。 | **错误码:** 以下错误码的详细介绍请参见[DRM错误码](errorcode-drm.md)。 | 错误码ID | 错误信息 | | --------------- | --------------- | | 401 | The parameter check failed.Possibly because: 1.Mandatory parameters are left unspecified. 2.Parameter verification failed. | | 24700101 | All unknown errors | | 24700201 | Fatal service error, for example, service died | **示例:** ```ts import { drm } from '@kit.DrmKit'; import { BusinessError } from '@kit.BasicServicesKit'; try { let uuid: String = drm.getMediaKeySystemUuid("com.clearplay.drm"); console.log("getMediaKeySystemUuid: ", uuid); } catch (err) { let error = err as BusinessError; console.error(`getMediaKeySystemUuid ERROR: ${error}`); } ``` ## drm.getMediaKeySystems12+ getMediaKeySystems(): MediaKeySystemDescription[] 获取设备支持的插件信息列表。 **原子化服务API:** 从API version 14开始,该接口支持在原子化服务中使用。 **系统能力:** SystemCapability.Multimedia.Drm.Core **返回值:** | 类型 | 说明 | | ----------------------------------------------- | ---------------------------- | | [MediaKeySystemDescription[]](arkts-apis-drm-i.md#mediakeysystemdescription12) | 设备支持的插件信息列表。 | **错误码:** 以下错误码的详细介绍请参见[DRM错误码](errorcode-drm.md)。 | 错误码ID | 错误信息 | | --------------- | --------------- | | 24700101 | All unknown errors | | 24700201 | Fatal service error, for example, service died | **示例:** ```ts import { drm } from '@kit.DrmKit'; import { BusinessError } from '@kit.BasicServicesKit'; try { let description: drm.MediaKeySystemDescription[] = drm.getMediaKeySystems(); } catch (err) { let error = err as BusinessError; console.error(`getMediaKeySystems ERROR: ${error}`); } ```