• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Functions
2<!--Kit: Drm Kit-->
3<!--Subsystem: Multimedia-->
4<!--Owner: @qin_wei_jie-->
5<!--Designer: @chris2981-->
6<!--Tester: @xdlinc-->
7<!--Adviser: @zengyawen-->
8> **说明:**
9>
10> 本模块首批接口从API version 11开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
11
12## 导入模块
13
14```ts
15import { drm } from '@kit.DrmKit';
16```
17
18## drm.createMediaKeySystem
19
20createMediaKeySystem(name: string): MediaKeySystem
21
22创建MediaKeySystem实例。
23
24**原子化服务API:** 从API version 14开始,该接口支持在原子化服务中使用。
25
26**系统能力:** SystemCapability.Multimedia.Drm.Core
27
28**参数:**
29
30| 参数名     | 类型                                             | 必填 | 说明                           |
31| -------- | ----------------------------------------------- | ---- | ---------------------------- |
32| name  | string     | 是   | DRM解决方案名称,如"com.clearplay.drm"。                   |
33
34**返回值:**
35
36| 类型                                             | 说明                           |
37| ----------------------------------------------- | ---------------------------- |
38| [MediaKeySystem](arkts-apis-drm-MediaKeySystem.md)           | MediaKeySystem实例。                   |
39
40**错误码:**
41
42以下错误码的详细介绍请参见[DRM错误码](errorcode-drm.md)。
43
44| 错误码ID         | 错误信息        |
45| --------------- | --------------- |
46| 401                |  The parameter check failed. Possibly because: 1.Mandatory parameters are left unspecified. 2.Parameter verification failed.               |
47| 24700101                |  All unknown errors                  |
48| 24700103                |  Meet max MediaKeySystem num limit                  |
49| 24700201                |  Fatal service error, for example, service died                  |
50
51**示例:**
52
53```ts
54import { drm } from '@kit.DrmKit';
55import { BusinessError } from '@kit.BasicServicesKit';
56try {
57  let mediaKeySystem: drm.MediaKeySystem = drm.createMediaKeySystem("com.clearplay.drm");
58} catch (err) {
59  let error = err as BusinessError;
60  console.error(`createMediaKeySystem ERROR: ${error}`);
61}
62```
63
64## drm.isMediaKeySystemSupported
65
66isMediaKeySystemSupported(name: string): boolean
67
68判断设备是否支持指定的DRM解决方案。
69
70**原子化服务API:** 从API version 14开始,该接口支持在原子化服务中使用。
71
72**系统能力:** SystemCapability.Multimedia.Drm.Core
73
74**参数:**
75
76| 参数名     | 类型                                             | 必填 | 说明                           |
77| -------- | ----------------------------------------------- | ---- | ---------------------------- |
78| name  | string     | 是   | DRM解决方案名称,如"com.clearplay.drm"。                     |
79
80**返回值:**
81
82| 类型                                             | 说明                           |
83| ----------------------------------------------- | ---------------------------- |
84| boolean          | 返回是否支持。true表示支持指定的DRM解决方案,false表示不支持指定的DRM解决方案。                   |
85
86**错误码:**
87
88以下错误码的详细介绍请参见[DRM错误码](errorcode-drm.md)。
89
90| 错误码ID         | 错误信息        |
91| --------------- | --------------- |
92| 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).               |
93| 24700101                |  All unknown errors                  |
94| 24700201                |  Fatal service error, for example, service died                  |
95
96**示例:**
97
98```ts
99import { drm } from '@kit.DrmKit';
100import { BusinessError } from '@kit.BasicServicesKit';
101
102try {
103  let supported: boolean = drm.isMediaKeySystemSupported("com.clearplay.drm");
104  console.log("isMediaKeySystemSupported: ", supported);
105} catch (err) {
106  let error = err as BusinessError;
107  console.error(`isMediaKeySystemSupported ERROR: ${error}`);
108}
109```
110
111## drm.isMediaKeySystemSupported
112
113isMediaKeySystemSupported(name: string, mimeType: string): boolean
114
115判断设备是否支持指定DRM解决方案及媒体类型。
116
117**原子化服务API:** 从API version 14开始,该接口支持在原子化服务中使用。
118
119**系统能力:** SystemCapability.Multimedia.Drm.Core
120
121**参数:**
122
123| 参数名     | 类型                                             | 必填 | 说明                                                                                                          |
124| -------- | ----------------------------------------------- | ---- |-------------------------------------------------------------------------------------------------------------|
125| name  | string     | 是   | DRM解决方案名称。建议先调用[isMediaKeySystemSupported](arkts-apis-drm-f.md#drmismediakeysystemsupported)判断是否是支持的解决方案名称。 |
126| mimeType  | string     | 是   | 媒体类型,支持的媒体类型取决于DRM解决方案,如:video/avcvideo/hev。                                                               |
127
128**返回值:**
129
130| 类型                                             | 说明                           |
131| ----------------------------------------------- | ---------------------------- |
132| boolean          | 返回是否支持。true表示支持指定DRM解决方案及媒体类型,false表示不支持指定DRM解决方案及媒体类型。                   |
133
134**错误码:**
135
136以下错误码的详细介绍请参见[DRM错误码](errorcode-drm.md)。
137
138| 错误码ID         | 错误信息        |
139| --------------- | --------------- |
140| 401                |  The parameter check failed. Possibly because: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. 3.Parameter verification failed.                |
141| 24700101                |  All unknown errors                  |
142| 24700201                |  Fatal service error, for example, service died                  |
143
144**示例:**
145
146```ts
147import { drm } from '@kit.DrmKit';
148import { BusinessError } from '@kit.BasicServicesKit';
149
150try {
151  let supported: boolean = drm.isMediaKeySystemSupported("com.clearplay.drm", "video/avc");
152  console.log("isMediaKeySystemSupported: ", supported);
153} catch (err) {
154  let error = err as BusinessError;
155  console.error(`isMediaKeySystemSupported ERROR: ${error}`);
156}
157```
158
159## drm.isMediaKeySystemSupported
160
161isMediaKeySystemSupported(name: string, mimeType: string, level: ContentProtectionLevel): boolean
162
163判断设备是否支持指定DRM解决方案、媒体类型以及内容保护级别。
164
165**原子化服务API:** 从API version 14开始,该接口支持在原子化服务中使用。
166
167**系统能力:** SystemCapability.Multimedia.Drm.Core
168
169**参数:**
170
171| 参数名     | 类型                                             | 必填 | 说明                                                                                                                            |
172| -------- | ----------------------------------------------- | ---- |-------------------------------------------------------------------------------------------------------------------------------|
173| name  | string     | 是   | DRM解决方案名称。建议先调用[isMediaKeySystemSupported](arkts-apis-drm-f.md#drmismediakeysystemsupported)判断是否是支持的解决方案名称。          |
174| mimeType  | string     | 是   | 媒体类型,支持的媒体类型取决于DRM解决方案。建议先调用[isMediaKeySystemSupported](arkts-apis-drm-f.md#drmismediakeysystemsupported-1)判断是否是DRM解决方案支持的类型。 |
175| level  | [ContentProtectionLevel](arkts-apis-drm-e.md#contentprotectionlevel)     | 是   | 内容保护级别。                                                                                                                       |
176
177**返回值:**
178
179| 类型                                             | 说明                           |
180| ----------------------------------------------- | ---------------------------- |
181| boolean          | 返回是否支持。true表示支持指定DRM解决方案、媒体类型以及内容保护级别,false表示不支持指定DRM解决方案、媒体类型以及内容保护级别。                   |
182
183**错误码:**
184
185以下错误码的详细介绍请参见[DRM错误码](errorcode-drm.md)。
186
187| 错误码ID         | 错误信息        |
188| --------------- | --------------- |
189| 401                |  The parameter check failed. Possibly because: 1.Mandatory parameters are left unspecified. 2.Incorrect parameter types. 3.Parameter verification failed.               |
190| 24700101                |  All unknown errors                  |
191| 24700201                |  Fatal service error, for example, service died                  |
192
193**示例:**
194
195```ts
196import { drm } from '@kit.DrmKit';
197import { BusinessError } from '@kit.BasicServicesKit';
198
199try {
200  let supported: boolean = drm.isMediaKeySystemSupported("com.clearplay.drm", "video/avc", drm.ContentProtectionLevel.CONTENT_PROTECTION_LEVEL_SW_CRYPTO);
201  console.log("isMediaKeySystemSupported: ", supported);
202} catch (err) {
203  let error = err as BusinessError;
204  console.error(`isMediaKeySystemSupported ERROR: ${error}`);
205}
206```
207
208## drm.getMediaKeySystemUuid<sup>12+</sup>
209
210getMediaKeySystemUuid(name: string): string;
211
212获取DRM解决方案支持的DRM内容保护系统唯一标识。
213
214**原子化服务API:** 从API version 14开始,该接口支持在原子化服务中使用。
215
216**系统能力:** SystemCapability.Multimedia.Drm.Core
217
218**参数:**
219
220| 参数名     | 类型                                             | 必填 | 说明                           |
221| -------- | ----------------------------------------------- | ---- | ---------------------------- |
222| name  | string     | 是   | DRM解决方案名称,支持的解决方案名称可通过[isMediaKeySystemSupported](arkts-apis-drm-f.md#drmismediakeysystemsupported)判断。                   |
223
224**返回值:**
225
226| 类型                                             | 说明                           |
227| ----------------------------------------------- | ---------------------------- |
228| string  | DRM内容保护系统的唯一标识。                   |
229
230**错误码:**
231
232以下错误码的详细介绍请参见[DRM错误码](errorcode-drm.md)。
233
234| 错误码ID         | 错误信息        |
235| --------------- | --------------- |
236| 401                |  The parameter check failed.Possibly because: 1.Mandatory parameters are left unspecified. 2.Parameter verification failed.                |
237| 24700101                |  All unknown errors                  |
238| 24700201                |  Fatal service error, for example, service died                  |
239
240**示例:**
241
242```ts
243import { drm } from '@kit.DrmKit';
244import { BusinessError } from '@kit.BasicServicesKit';
245try {
246  let uuid: String = drm.getMediaKeySystemUuid("com.clearplay.drm");
247  console.log("getMediaKeySystemUuid: ", uuid);
248} catch (err) {
249  let error = err as BusinessError;
250  console.error(`getMediaKeySystemUuid ERROR: ${error}`);
251}
252```
253
254## drm.getMediaKeySystems<sup>12+</sup>
255
256getMediaKeySystems(): MediaKeySystemDescription[]
257
258获取设备支持的插件信息列表。
259
260**原子化服务API:** 从API version 14开始,该接口支持在原子化服务中使用。
261
262**系统能力:** SystemCapability.Multimedia.Drm.Core
263
264**返回值:**
265
266| 类型                                             | 说明                           |
267| ----------------------------------------------- | ---------------------------- |
268| [MediaKeySystemDescription[]](arkts-apis-drm-i.md#mediakeysystemdescription12)           | 设备支持的插件信息列表。                   |
269
270**错误码:**
271
272以下错误码的详细介绍请参见[DRM错误码](errorcode-drm.md)。
273
274| 错误码ID         | 错误信息        |
275| --------------- | --------------- |
276| 24700101                |  All unknown errors                  |
277| 24700201                |  Fatal service error, for example, service died                  |
278
279**示例:**
280
281```ts
282import { drm } from '@kit.DrmKit';
283import { BusinessError } from '@kit.BasicServicesKit';
284try {
285  let description: drm.MediaKeySystemDescription[] = drm.getMediaKeySystems();
286} catch (err) {
287  let error = err as BusinessError;
288  console.error(`getMediaKeySystems ERROR: ${error}`);
289}
290```
291