• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Interface (MetadataOutput)
2<!--Kit: Camera Kit-->
3<!--Subsystem: Multimedia-->
4<!--Owner: @qano-->
5<!--Designer: @leo_ysl-->
6<!--Tester: @xchaosioda-->
7<!--Adviser: @zengyawen-->
8
9> **说明:**
10>
11> 本模块首批接口从API version 10开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
12
13metadata流。继承[CameraOutput](arkts-apis-camera-CameraOutput.md)。
14
15## 导入模块
16
17```ts
18import { camera } from '@kit.CameraKit';
19```
20
21## start
22
23start(callback: AsyncCallback\<void\>): void
24
25开始输出metadata,通过注册回调函数获取结果。使用callback异步回调。
26
27**原子化服务API:** 从API version 19开始,该接口支持在原子化服务中使用。
28
29**系统能力:** SystemCapability.Multimedia.Camera.Core
30
31**参数:**
32
33| 参数名     | 类型                                                         | 必填 | 说明                 |
34| -------- | -------------------------- | ---- | ------------------- |
35| callback | AsyncCallback\<void\>       | 是   | 回调函数。当开始输出metadata成功,err为undefined,否则为错误对象。错误码类型[CameraErrorCode](arkts-apis-camera-e.md#cameraerrorcode)。 |
36
37**错误码:**
38
39以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。
40
41| 错误码ID         | 错误信息        |
42| --------------- | --------------- |
43| 7400103                |  Session not config.                                   |
44| 7400201                |  Camera service fatal error.                           |
45
46**示例:**
47
48```ts
49import { BusinessError } from '@kit.BasicServicesKit';
50
51function startMetadataOutput(metadataOutput: camera.MetadataOutput): void {
52  metadataOutput.start((err: BusinessError) => {
53    if (err) {
54      console.error(`Failed to start metadata output, error code: ${err.code}.`);
55      return;
56    }
57    console.info('Callback returned with metadata output started.');
58  });
59}
60```
61
62## start
63
64start(): Promise\<void\>
65
66开始输出metadata。使用Promise异步回调。
67
68**原子化服务API:** 从API version 19开始,该接口支持在原子化服务中使用。
69
70**系统能力:** SystemCapability.Multimedia.Camera.Core
71
72**返回值:**
73
74| 类型                     | 说明                     |
75| ----------------------  | ------------------------ |
76| Promise\<void\>          | Promise对象,无返回结果。 |
77
78**错误码:**
79
80以下错误码的详细介绍请参见[Camera错误码](errorcode-camera.md)。
81
82| 错误码ID         | 错误信息        |
83| --------------- | --------------- |
84| 7400103                |  Session not config.                                   |
85| 7400201                |  Camera service fatal error.                           |
86
87**示例:**
88
89```ts
90import { BusinessError } from '@kit.BasicServicesKit';
91
92function startMetadataOutput(metadataOutput: camera.MetadataOutput): void {
93  metadataOutput.start().then(() => {
94    console.info('Callback returned with metadata output started.');
95  }).catch((error: BusinessError) => {
96    console.error(`Failed to metadata output stop, error code: ${error.code}`);
97  });
98}
99```
100
101## stop
102
103stop(callback: AsyncCallback\<void\>): void
104
105停止输出metadata,通过注册回调函数获取结果。使用callback异步回调。
106
107**原子化服务API:** 从API version 19开始,该接口支持在原子化服务中使用。
108
109**系统能力:** SystemCapability.Multimedia.Camera.Core
110
111**参数:**
112
113| 参数名     | 类型                         | 必填 | 说明                  |
114| -------- | -------------------------- | ---- | ------------------- |
115| callback | AsyncCallback\<void\>       | 是   | 回调函数。当停止输出metadata成功,err为undefined,否则为错误对象。 |
116
117**示例:**
118
119```ts
120import { BusinessError } from '@kit.BasicServicesKit';
121
122function stopMetadataOutput(metadataOutput: camera.MetadataOutput): void {
123  metadataOutput.stop((err: BusinessError) => {
124    if (err) {
125      console.error(`Failed to stop the metadata output, error code: ${err.code}.`);
126      return;
127    }
128    console.info('Callback returned with metadata output stopped.');
129  })
130}
131```
132
133## stop
134
135stop(): Promise\<void\>
136
137停止输出metadata。使用Promise异步回调。
138
139**原子化服务API:** 从API version 19开始,该接口支持在原子化服务中使用。
140
141**系统能力:** SystemCapability.Multimedia.Camera.Core
142
143**返回值:**
144
145| 类型                    | 说明                        |
146| ----------------------  | --------------------------- |
147| Promise\<void\>         | Promise对象,无返回结果。 |
148
149**示例:**
150
151```ts
152import { BusinessError } from '@kit.BasicServicesKit';
153
154function stopMetadataOutput(metadataOutput: camera.MetadataOutput): void {
155  metadataOutput.stop().then(() => {
156    console.info('Callback returned with metadata output stopped.');
157  }).catch((error: BusinessError) => {
158    console.error(`Failed to metadata output stop, error code: ${error.code}`);
159  });
160}
161```
162
163## on('metadataObjectsAvailable')
164
165on(type: 'metadataObjectsAvailable', callback: AsyncCallback\<Array\<MetadataObject\>\>): void
166
167监听检测到的metadata对象,通过注册回调函数获取结果。使用callback异步回调。
168
169> **说明:**
170>
171> 当前注册监听接口,不支持在on监听的回调方法里,调用off注销回调。
172
173**原子化服务API:** 从API version 19开始,该接口支持在原子化服务中使用。
174
175**系统能力:** SystemCapability.Multimedia.Camera.Core
176
177**参数:**
178
179| 参数名      | 类型         | 必填 | 说明                                  |
180| -------- | -------------- | ---- | ------------------------------------ |
181| type     | string         | 是   | 监听事件,固定为'metadataObjectsAvailable',metadataOutput创建成功后可监听。检测到有效的metadata数据时触发该事件发生并返回相应的metadata数据。 |
182| callback | AsyncCallback\<Array\<[MetadataObject](arkts-apis-camera-i.md#metadataobject)\>\> | 是   | 回调函数,用于获取metadata数据。 |
183
184**示例:**
185
186```ts
187import { BusinessError } from '@kit.BasicServicesKit';
188
189function callback(err: BusinessError, metadataObjectArr: Array<camera.MetadataObject>): void {
190  if (err !== undefined && err.code !== 0) {
191    console.error(`Callback Error, errorCode: ${err.code}`);
192    return;
193  }
194  console.info('metadata output metadataObjectsAvailable');
195}
196
197function registerMetadataObjectsAvailable(metadataOutput: camera.MetadataOutput): void {
198  metadataOutput.on('metadataObjectsAvailable', callback);
199}
200```
201
202## off('metadataObjectsAvailable')
203
204off(type: 'metadataObjectsAvailable', callback?: AsyncCallback\<Array\<MetadataObject\>\>): void
205
206注销监听检测到的metadata对象。
207
208**原子化服务API:** 从API version 19开始,该接口支持在原子化服务中使用。
209
210**系统能力:** SystemCapability.Multimedia.Camera.Core
211
212**参数:**
213
214| 参数名      | 类型         | 必填 | 说明                                  |
215| -------- | -------------- | ---- | ------------------------------------ |
216| type     | string         | 是   | 监听事件,固定为'metadataObjectsAvailable',metadataOutput创建成功后可监听。 |
217| callback | AsyncCallback\<Array\<[MetadataObject](arkts-apis-camera-i.md#metadataobject)\>\> | 否   | 回调函数,如果指定参数则取消对应callback(callback对象不可是匿名函数),否则取消所有callback。 |
218
219**示例:**
220
221```ts
222function unregisterMetadataObjectsAvailable(metadataOutput: camera.MetadataOutput): void {
223  metadataOutput.off('metadataObjectsAvailable');
224}
225```
226
227## on('error')
228
229on(type: 'error', callback: ErrorCallback): void
230
231监听metadata流的错误,通过注册回调函数获取结果。使用callback异步回调。
232
233> **说明:**
234>
235> 当前注册监听接口,不支持在on监听的回调方法里,调用off注销回调。
236
237**原子化服务API:** 从API version 19开始,该接口支持在原子化服务中使用。
238
239**系统能力:** SystemCapability.Multimedia.Camera.Core
240
241**参数:**
242
243| 参数名     | 类型         | 必填 | 说明                                     |
244| -------- | ------------- | ---- | --------------------------------------- |
245| type     | string        | 是   | 监听事件,固定为'error',metadataOutput创建成功后可监听。metadata接口使用错误时触发该事件并返回对应错误码,比如调用[start](#start-1),[CameraOutput.release](arkts-apis-camera-CameraOutput.md#release-1)接口时发生错误返回对应错误信息。 |
246| callback | [ErrorCallback](../apis-basic-services-kit/js-apis-base.md#errorcallback) | 是   | 回调函数,用于获取错误信息。返回错误码,错误码类型[CameraErrorCode](arkts-apis-camera-e.md#cameraerrorcode)。            |
247
248**示例:**
249
250```ts
251import { BusinessError } from '@kit.BasicServicesKit';
252
253function callback(metadataOutputError: BusinessError): void {
254  console.error(`Metadata output error code: ${metadataOutputError.code}`);
255}
256
257function registerMetadataOutputError(metadataOutput: camera.MetadataOutput): void {
258  metadataOutput.on('error', callback);
259}
260```
261
262## off('error')
263
264off(type: 'error', callback?: ErrorCallback): void
265
266注销监听metadata流的错误。
267
268**原子化服务API:** 从API version 19开始,该接口支持在原子化服务中使用。
269
270**系统能力:** SystemCapability.Multimedia.Camera.Core
271
272**参数:**
273
274| 参数名     | 类型         | 必填 | 说明                                     |
275| -------- | ------------- | ---- | --------------------------------------- |
276| type     | string        | 是   | 监听事件,固定为'error',metadataOutput创建成功后可监听。 |
277| callback | [ErrorCallback](../apis-basic-services-kit/js-apis-base.md#errorcallback) | 否   | 回调函数,如果指定参数则取消对应callback(callback对象不可是匿名函数),否则取消所有callback。 |
278
279**示例:**
280
281```ts
282function unregisterMetadataOutputError(metadataOutput: camera.MetadataOutput): void {
283  metadataOutput.off('error');
284}
285```
286