• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Class (MediaAssetManager)
2<!--Kit: Media Library Kit-->
3<!--Subsystem: Multimedia-->
4<!--Owner: @yixiaoff-->
5<!--Designer: @liweilu1-->
6<!--Tester: @xchaosioda-->
7<!--Adviser: @zengyawen-->
8
9> **说明:**
10>
11> - 本模块首批接口从API version 10开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
12> - 本Class首批接口从API version 11开始支持。
13
14媒体资产管理类,管理媒体资源读取。
15
16**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
17
18## 导入模块
19
20```ts
21import { photoAccessHelper } from '@kit.MediaLibraryKit';
22```
23
24## requestImage<sup>11+</sup>
25
26static requestImage(context: Context, asset: PhotoAsset, requestOptions: RequestOptions, dataHandler: MediaAssetDataHandler&lt;image.ImageSource&gt;): Promise&lt;string&gt;
27
28根据不同的策略模式,请求图片资源。
29
30**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
31
32**需要权限**:ohos.permission.READ_IMAGEVIDEO
33
34- 通过picker的方式调用该接口来请求图片资源,不需要申请'ohos.permission.READ_IMAGEVIDEO'权限,详情请参考[开发指南](../../media/medialibrary/photoAccessHelper-photoviewpicker.md#指定uri获取图片或视频资源)。
35- 对于本应用保存到媒体库的图片资源,应用无需额外申请'ohos.permission.READ_IMAGEVIDEO'权限即可访问。
36
37**参数:**
38
39| 参数名            | 类型                                                                                                        | 必填 | 说明                      |
40|----------------|-----------------------------------------------------------------------------------------------------------| ---- | ------------------------- |
41| context        | [Context](../apis-ability-kit/js-apis-inner-application-context.md)                                                           | 是   | 传入Ability实例的上下文。 |
42| asset         | [PhotoAsset](arkts-apis-photoAccessHelper-PhotoAsset.md)                                                                                | 是   | 待请求的媒体文件对象。 |
43| requestOptions | [RequestOptions](arkts-apis-photoAccessHelper-i.md#requestoptions11)                                                                        | 是   | 图片请求策略模式配置项。|
44| dataHandler    | [MediaAssetDataHandler](arkts-apis-photoAccessHelper-MediaAssetDataHandler.md)&lt;[image.ImageSource](../apis-image-kit/arkts-apis-image-ImageSource.md)&gt; | 是   | 媒体资源处理器,请求完成时触发回调。|
45
46**返回值:**
47
48| 类型                                    | 说明              |
49| --------------------------------------- | ----------------- |
50| Promise\<string> | Promise对象,返回请求id,可用于[cancelRequest](#cancelrequest12)取消请求。 |
51
52**错误码:**
53
54接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
55
56| 错误码ID | 错误信息 |
57| -------- | ---------------------------------------- |
58| 201      |  Permission denied         |
59| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
60| 14000011       | System inner fail.        |
61
62**示例:**
63
64phAccessHelper的创建请参考[photoAccessHelper.getPhotoAccessHelper](arkts-apis-photoAccessHelper-f.md#photoaccesshelpergetphotoaccesshelper)的示例使用。
65
66```ts
67import { dataSharePredicates } from '@kit.ArkData';
68import { image } from '@kit.ImageKit';
69
70class MediaHandler implements photoAccessHelper.MediaAssetDataHandler<image.ImageSource> {
71  onDataPrepared(data: image.ImageSource) {
72    if (data === undefined) {
73      console.error('Error occurred when preparing data');
74      return;
75    }
76    console.info('on image data prepared');
77  }
78}
79
80async function example(phAccessHelper: photoAccessHelper.PhotoAccessHelper, context: Context) {
81  console.info('requestImage');
82  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
83  let fetchOptions: photoAccessHelper.FetchOptions = {
84    fetchColumns: [],
85    predicates: predicates
86  };
87  let requestOptions: photoAccessHelper.RequestOptions = {
88    deliveryMode: photoAccessHelper.DeliveryMode.HIGH_QUALITY_MODE,
89  }
90  const handler = new MediaHandler();
91
92  phAccessHelper.getAssets(fetchOptions, async (err, fetchResult) => {
93      console.info('fetchResult success');
94      let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject();
95      await photoAccessHelper.MediaAssetManager.requestImage(context, photoAsset, requestOptions, handler);
96      console.info('requestImage successfully');
97  });
98}
99```
100
101## requestImageData<sup>11+</sup>
102
103static requestImageData(context: Context, asset: PhotoAsset, requestOptions: RequestOptions, dataHandler: MediaAssetDataHandler&lt;ArrayBuffer&gt;): Promise&lt;string&gt;
104
105根据不同的策略模式,请求图片资源数据。
106
107**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
108
109**需要权限**:ohos.permission.READ_IMAGEVIDEO
110
111- 通过picker的方式调用该接口来请求图片资源数据,不需要申请'ohos.permission.READ_IMAGEVIDEO'权限,详情请参考[开发指南](../../media/medialibrary/photoAccessHelper-photoviewpicker.md#指定uri获取图片或视频资源)。
112- 对于本应用保存到媒体库的图片资源,应用无需额外申请'ohos.permission.READ_IMAGEVIDEO'权限即可访问。
113
114**参数:**
115
116| 参数名   | 类型                                                                   | 必填 | 说明                      |
117| -------- |----------------------------------------------------------------------| ---- | ------------------------- |
118| context | [Context](../apis-ability-kit/js-apis-inner-application-context.md)                      | 是   | 传入Ability实例的上下文。 |
119| asset | [PhotoAsset](arkts-apis-photoAccessHelper-PhotoAsset.md)                                            | 是   | 待请求的媒体文件对象。 |
120| requestOptions  | [RequestOptions](arkts-apis-photoAccessHelper-i.md#requestoptions11)                                  | 是   | 图片请求策略模式配置项。 |
121| dataHandler  | [MediaAssetDataHandler](arkts-apis-photoAccessHelper-MediaAssetDataHandler.md)&lt;ArrayBuffer&gt; | 是   | 媒体资源处理器,当所请求的图片资源准备完成时会触发回调。|
122
123**返回值:**
124
125| 类型                                    | 说明              |
126| --------------------------------------- | ----------------- |
127| Promise\<string> | Promise对象,返回请求id,可用于[cancelRequest](#cancelrequest12)取消请求。 |
128
129**错误码:**
130
131接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
132
133| 错误码ID | 错误信息 |
134| -------- | ---------------------------------------- |
135| 201      |  Permission denied         |
136| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
137| 14000011       | System inner fail.        |
138
139**示例:**
140
141phAccessHelper的创建请参考[photoAccessHelper.getPhotoAccessHelper](arkts-apis-photoAccessHelper-f.md#photoaccesshelpergetphotoaccesshelper)的示例使用。
142
143```ts
144import { dataSharePredicates } from '@kit.ArkData';
145
146class MediaDataHandler implements photoAccessHelper.MediaAssetDataHandler<ArrayBuffer> {
147  onDataPrepared(data: ArrayBuffer) {
148    if (data === undefined) {
149      console.error('Error occurred when preparing data');
150      return;
151    }
152    console.info('on image data prepared');
153  }
154}
155
156async function example(phAccessHelper: photoAccessHelper.PhotoAccessHelper, context: Context) {
157  console.info('requestImageData');
158  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
159  let fetchOptions: photoAccessHelper.FetchOptions = {
160    fetchColumns: [],
161    predicates: predicates
162  };
163  let requestOptions: photoAccessHelper.RequestOptions = {
164    deliveryMode: photoAccessHelper.DeliveryMode.HIGH_QUALITY_MODE,
165  }
166  const handler = new MediaDataHandler();
167
168  phAccessHelper.getAssets(fetchOptions, async (err, fetchResult) => {
169      console.info('fetchResult success');
170      let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject();
171      await photoAccessHelper.MediaAssetManager.requestImageData(context, photoAsset, requestOptions, handler);
172      console.info('requestImageData successfully');
173  });
174}
175```
176
177## requestMovingPhoto<sup>12+</sup>
178
179static requestMovingPhoto(context: Context, asset: PhotoAsset, requestOptions: RequestOptions, dataHandler: MediaAssetDataHandler&lt;MovingPhoto&gt;): Promise&lt;string&gt;
180
181根据不同的策略模式,请求动态照片对象。动态照片对象可用于请求动态照片的资源数据。
182
183**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
184
185**需要权限**:ohos.permission.READ_IMAGEVIDEO
186
187- 通过picker的方式调用该接口来请求动态照片对象,不需要申请'ohos.permission.READ_IMAGEVIDEO'权限,详情请参考[开发指南](../../media/medialibrary/photoAccessHelper-photoviewpicker.md#指定uri获取图片或视频资源)。
188- 对于本应用保存到媒体库的动态照片资源,应用无需额外申请'ohos.permission.READ_IMAGEVIDEO'权限即可访问。
189
190**参数:**
191
192| 参数名   | 类型                                                                   | 必填 | 说明                      |
193| -------- |----------------------------------------------------------------------| ---- | ------------------------- |
194| context | [Context](../apis-ability-kit/js-apis-inner-application-context.md)                      | 是   | 传入Ability实例的上下文。 |
195| asset | [PhotoAsset](arkts-apis-photoAccessHelper-PhotoAsset.md)                                            | 是   | 待请求的媒体文件对象。 |
196| requestOptions  | [RequestOptions](arkts-apis-photoAccessHelper-i.md#requestoptions11)                                  | 是   | 图片请求策略模式配置项。|
197| dataHandler  | [MediaAssetDataHandler](arkts-apis-photoAccessHelper-MediaAssetDataHandler.md)&lt;[MovingPhoto](arkts-apis-photoAccessHelper-MovingPhoto.md)&gt; | 是   | 媒体资源处理器,当所请求的图片资源准备完成时会触发回调。|
198
199**返回值:**
200
201| 类型                                    | 说明              |
202| --------------------------------------- | ----------------- |
203| Promise\<string> | Promise对象,返回请求id,可用于[cancelRequest](#cancelrequest12)取消请求。 |
204
205**错误码:**
206
207接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
208
209| 错误码ID | 错误信息 |
210| -------- | ---------------------------------------- |
211| 201      |  Permission denied         |
212| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
213| 801   | Capability not supported.       |
214| 14000011       | System inner fail         |
215
216**示例:**
217
218phAccessHelper的创建请参考[photoAccessHelper.getPhotoAccessHelper](arkts-apis-photoAccessHelper-f.md#photoaccesshelpergetphotoaccesshelper)的示例使用。
219
220```ts
221import { dataSharePredicates } from '@kit.ArkData';
222
223class MovingPhotoHandler implements photoAccessHelper.MediaAssetDataHandler<photoAccessHelper.MovingPhoto> {
224  async onDataPrepared(movingPhoto: photoAccessHelper.MovingPhoto) {
225    if (movingPhoto === undefined) {
226      console.error('Error occurred when preparing data');
227      return;
228    }
229    console.info("moving photo acquired successfully, uri: " + movingPhoto.getUri());
230  }
231}
232
233async function example(phAccessHelper: photoAccessHelper.PhotoAccessHelper, context: Context) {
234  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
235  predicates.equalTo(photoAccessHelper.PhotoKeys.PHOTO_SUBTYPE, photoAccessHelper.PhotoSubtype.MOVING_PHOTO);
236  let fetchOptions: photoAccessHelper.FetchOptions = {
237    fetchColumns: [],
238    predicates: predicates
239  };
240  // 请确保图库内存在动态照片。
241  let assetResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOptions);
242  let asset: photoAccessHelper.PhotoAsset = await assetResult.getFirstObject();
243  let requestOptions: photoAccessHelper.RequestOptions = {
244    deliveryMode: photoAccessHelper.DeliveryMode.FAST_MODE,
245  }
246  const handler = new MovingPhotoHandler();
247  try {
248    let requestId: string = await photoAccessHelper.MediaAssetManager.requestMovingPhoto(context, asset, requestOptions, handler);
249    console.info("moving photo requested successfully, requestId: " + requestId);
250  } catch (err) {
251    console.error(`failed to request moving photo, error code is ${err.code}, message is ${err.message}`);
252  }
253}
254
255```
256
257## requestVideoFile<sup>12+</sup>
258
259static requestVideoFile(context: Context, asset: PhotoAsset, requestOptions: RequestOptions, fileUri: string, dataHandler: MediaAssetDataHandler&lt;boolean&gt;): Promise&lt;string&gt;
260
261根据不同的策略模式,请求视频资源数据到沙箱路径。
262
263**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
264
265**需要权限**:ohos.permission.READ_IMAGEVIDEO
266
267- 通过picker的方式调用该接口来请求视频资源数据到应用沙箱,不需要申请'ohos.permission.READ_IMAGEVIDEO'权限,详情请参考[开发指南](../../media/medialibrary/photoAccessHelper-photoviewpicker.md#指定uri获取图片或视频资源)。
268- 对于本应用保存到媒体库的视频资源,应用无需额外申请'ohos.permission.READ_IMAGEVIDEO'权限即可访问。
269
270**参数:**
271
272| 参数名   | 类型                                                                   | 必填 | 说明                      |
273| -------- |----------------------------------------------------------------------| ---- | ------------------------- |
274| context | [Context](../apis-ability-kit/js-apis-inner-application-context.md)                      | 是   | 传入Ability实例的上下文。|
275| asset | [PhotoAsset](arkts-apis-photoAccessHelper-PhotoAsset.md)                                            | 是   | 待请求的媒体文件对象。 |
276| requestOptions  | [RequestOptions](arkts-apis-photoAccessHelper-i.md#requestoptions11)                                  | 是   | 视频请求策略模式配置项。|
277| fileUri| string                                                              | 是 | 目标写入沙箱路径uri。示例fileUri:'file://com.example.temptest/data/storage/el2/base/haps/entry/files/test.mp4'。 |
278| dataHandler  | [MediaAssetDataHandler](arkts-apis-photoAccessHelper-MediaAssetDataHandler.md)&lt;boolean&gt; | 是   | 媒体资源处理器,当所请求的视频资源写入完成时会触发回调。<br>视频资源写入成功时返回true,写入失败则返回false。|
279
280**返回值:**
281
282| 类型                                    | 说明              |
283| --------------------------------------- | ----------------- |
284| Promise\<string> | Promise对象,返回请求id,可用于[cancelRequest](#cancelrequest12)取消请求。 |
285
286**错误码:**
287
288接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
289
290| 错误码ID | 错误信息 |
291| -------- | ---------------------------------------- |
292| 201      |  Permission denied         |
293| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
294| 801<sup>15+</sup>   | Capability not supported.       |
295| 14000011       | System inner fail.        |
296
297**示例:**
298
299phAccessHelper的创建请参考[photoAccessHelper.getPhotoAccessHelper](arkts-apis-photoAccessHelper-f.md#photoaccesshelpergetphotoaccesshelper)的示例使用。
300
301```ts
302import { dataSharePredicates } from '@kit.ArkData';
303
304class MediaDataHandler implements photoAccessHelper.MediaAssetDataHandler<boolean> {
305    onDataPrepared(data: boolean) {
306        console.info('on video request status prepared');
307    }
308}
309
310async function example(phAccessHelper: photoAccessHelper.PhotoAccessHelper, context: Context) {
311  console.info('requestVideoFile');
312  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
313  let fetchOptions: photoAccessHelper.FetchOptions = {
314    fetchColumns: [],
315    predicates: predicates
316  };
317  let requestOptions: photoAccessHelper.RequestOptions = {
318    deliveryMode: photoAccessHelper.DeliveryMode.HIGH_QUALITY_MODE,
319  }
320  const handler = new MediaDataHandler();
321  let fileUri = 'file://com.example.temptest/data/storage/el2/base/haps/entry/files/test.mp4';
322  phAccessHelper.getAssets(fetchOptions, async (err, fetchResult) => {
323      console.info('fetchResult success');
324      let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject();
325      await photoAccessHelper.MediaAssetManager.requestVideoFile(context, photoAsset, requestOptions, fileUri, handler);
326      console.info('requestVideoFile successfully');
327  });
328}
329```
330
331## cancelRequest<sup>12+</sup>
332
333static cancelRequest(context: Context, requestId: string): Promise\<void>
334
335取消未触发回调的资产内容请求。
336
337**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
338
339**需要权限**:ohos.permission.READ_IMAGEVIDEO
340
341**参数:**
342
343| 参数名   | 类型                                                                   | 必填 | 说明                      |
344| -------- |----------------------------------------------------------------------| ---- | ------------------------- |
345| context | [Context](../apis-ability-kit/js-apis-inner-application-context.md)                      | 是   | 传入Ability实例的上下文。 |
346| requestId | string     | 是   | 需要取消的请求id,requestImage等接口返回的有效请求id。 |
347
348**返回值:**
349
350| 类型                                    | 说明              |
351| --------------------------------------- | ----------------- |
352| Promise\<void> | Promise对象,返回void。 |
353
354**错误码:**
355
356接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
357
358| 错误码ID | 错误信息 |
359| -------- | ---------------------------------------- |
360| 201      |  Permission denied         |
361| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
362| 14000011       | System inner fail         |
363
364**示例:**
365
366```ts
367import { dataSharePredicates } from '@kit.ArkData';
368
369async function example(context: Context) {
370  try {
371    let requestId: string = 'xxx-xxx'; // 应用需使用requestImage等接口返回的有效requestId
372    await photoAccessHelper.MediaAssetManager.cancelRequest(context, requestId);
373    console.info("request cancelled successfully");
374  } catch (err) {
375    console.error(`cancelRequest failed with error: ${err.code}, ${err.message}`);
376  }
377}
378
379```
380
381## loadMovingPhoto<sup>12+</sup>
382
383static loadMovingPhoto(context: Context, imageFileUri: string, videoFileUri: string): Promise\<MovingPhoto>
384
385加载应用沙箱的动态照片。
386
387**原子化服务API:** 从API version 14开始,该接口支持在原子化服务中使用。
388
389**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
390
391**参数:**
392
393| 参数名   | 类型                                                                   | 必填 | 说明                      |
394| -------- |----------------------------------------------------------------------| ---- | ------------------------- |
395| context | [Context](../apis-ability-kit/js-apis-inner-application-context.md)   | 是   | 传入AbilityContext或者UIExtensionContext的实例。 |
396| imageFileUri | string     | 是   | 应用沙箱动态照片的图片uri。<br>示例:'file://com.example.temptest/data/storage/el2/base/haps/ImageFile.jpg' |
397| videoFileUri | string     | 是   | 应用沙箱动态照片的视频uri。<br>示例:'file://com.example.temptest/data/storage/el2/base/haps/VideoFile.mp4' |
398
399**返回值:**
400
401| 类型                                    | 说明              |
402| --------------------------------------- | ----------------- |
403| Promise\<MovingPhoto> | Promise对象,返回[MovingPhoto](arkts-apis-photoAccessHelper-MovingPhoto.md)实例。 |
404
405**错误码:**
406
407接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
408
409| 错误码ID | 错误信息 |
410| -------- | ---------------------------------------- |
411| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
412| 14000011 | Internal system error. |
413
414**示例:**
415
416```ts
417async function example(context: Context) {
418  try {
419    let imageFileUri: string = 'file://com.example.temptest/data/storage/el2/base/haps/ImageFile.jpg'; // 应用沙箱动态照片的图片uri。
420    let videoFileUri: string = 'file://com.example.temptest/data/storage/el2/base/haps/VideoFile.mp4'; // 应用沙箱动态照片的视频uri。
421    let movingPhoto: photoAccessHelper.MovingPhoto = await photoAccessHelper.MediaAssetManager.loadMovingPhoto(context, imageFileUri, videoFileUri);
422  } catch (err) {
423    console.error(`loadMovingPhoto failed with error: ${err.code}, ${err.message}`);
424  }
425}
426
427```
428
429## quickRequestImage<sup>13+</sup>
430
431static quickRequestImage(context: Context, asset: PhotoAsset, requestOptions: RequestOptions, dataHandler: QuickImageDataHandler&lt;image.Picture&gt;): Promise&lt;string&gt;
432
433根据不同的策略模式,快速请求图片资源。
434
435**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core
436
437**需要权限**:ohos.permission.READ_IMAGEVIDEO
438
439- 通过picker的方式调用该接口来请求图片资源,不需要申请'ohos.permission.READ_IMAGEVIDEO'权限,详情请参考[开发指南](../../media/medialibrary/photoAccessHelper-photoviewpicker.md#指定uri获取图片或视频资源)。
440
441**参数:**
442
443| 参数名            | 类型                                                                                                        | 必填 | 说明                      |
444|----------------|-----------------------------------------------------------------------------------------------------------| ---- | ------------------------- |
445| context        | [Context](../apis-ability-kit/js-apis-inner-application-context.md)                                                           | 是   | 传入Ability实例的上下文。 |
446| asset         | [PhotoAsset](arkts-apis-photoAccessHelper-PhotoAsset.md)                                                                                | 是   | 待请求的媒体文件对象。 |
447| requestOptions | [RequestOptions](arkts-apis-photoAccessHelper-i.md#requestoptions11)                                                                        | 是   | 图片请求策略模式配置项。|
448| dataHandler    | [QuickImageDataHandler](arkts-apis-photoAccessHelper-QuickImageDataHandler.md)&lt;[image.Picture](../apis-image-kit/arkts-apis-image-Picture.md)&gt; | 是   | 媒体资源处理器,当所请求的图片资源准备完成时会触发回调。|
449
450**返回值:**
451
452| 类型                                    | 说明              |
453| --------------------------------------- | ----------------- |
454| Promise\<string> | Promise对象,返回请求id,可用于[cancelRequest](#cancelrequest12)取消请求。 |
455
456**错误码:**
457
458接口抛出错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)和[文件管理错误码](../apis-core-file-kit/errorcode-filemanagement.md)。
459
460| 错误码ID | 错误信息 |
461| -------- | ---------------------------------------- |
462| 201      |  Permission denied         |
463| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
464| 14000011       | Internal system error.         |
465
466**示例:**
467
468phAccessHelper的创建请参考[photoAccessHelper.getPhotoAccessHelper](arkts-apis-photoAccessHelper-f.md#photoaccesshelpergetphotoaccesshelper)的示例使用。
469
470```ts
471import { dataSharePredicates } from '@kit.ArkData';
472import { image } from '@kit.ImageKit';
473
474class MediaHandler implements photoAccessHelper.QuickImageDataHandler<image.Picture> {
475  onDataPrepared(data: image.Picture, imageSource: image.ImageSource, map: Map<string, string>) {
476    console.info('on image data prepared');
477  }
478}
479
480async function example(context: Context) {
481  console.info('quickRequestImage');
482  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
483  let fetchOptions: photoAccessHelper.FetchOptions = {
484    fetchColumns: [],
485    predicates: predicates
486  };
487  let requestOptions: photoAccessHelper.RequestOptions = {
488    deliveryMode: photoAccessHelper.DeliveryMode.HIGH_QUALITY_MODE,
489  }
490  const handler = new MediaHandler();
491  let phAccessHelper = photoAccessHelper.getPhotoAccessHelper(context);
492  phAccessHelper.getAssets(fetchOptions, async (err, fetchResult) => {
493      console.info('fetchResult success');
494      let photoAsset: photoAccessHelper.PhotoAsset = await fetchResult.getFirstObject();
495      await photoAccessHelper.MediaAssetManager.quickRequestImage(context, photoAsset, requestOptions, handler);
496      console.info('quickRequestImage successfully');
497  });
498}
499```
500