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<image.ImageSource>): Promise<string> 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)<[image.ImageSource](../apis-image-kit/arkts-apis-image-ImageSource.md)> | 是 | 媒体资源处理器,请求完成时触发回调。| 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<ArrayBuffer>): Promise<string> 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)<ArrayBuffer> | 是 | 媒体资源处理器,当所请求的图片资源准备完成时会触发回调。| 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<MovingPhoto>): Promise<string> 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)<[MovingPhoto](arkts-apis-photoAccessHelper-MovingPhoto.md)> | 是 | 媒体资源处理器,当所请求的图片资源准备完成时会触发回调。| 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<boolean>): Promise<string> 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)<boolean> | 是 | 媒体资源处理器,当所请求的视频资源写入完成时会触发回调。<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<image.Picture>): Promise<string> 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)<[image.Picture](../apis-image-kit/arkts-apis-image-Picture.md)> | 是 | 媒体资源处理器,当所请求的图片资源准备完成时会触发回调。| 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