1# Interface (MediaAssetDataHandler) 2 3> **说明:** 4> 5> - 本模块首批接口从API version 10开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 6> - 本Interface首批接口从API version 11开始支持。 7 8媒体资源处理器,应用在onDataPrepared方法中可自定义媒体资源处理逻辑。 9 10**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 11 12## 导入模块 13 14```ts 15import { photoAccessHelper } from '@kit.MediaLibraryKit'; 16``` 17 18## onDataPrepared<sup>11+</sup> 19 20onDataPrepared(data: T, map?: Map<string, string>): void 21 22媒体资源就绪通知,系统在资源准备就绪时回调此方法。若资源准备出错,回调的data为undefined。资源请求与回调一一对应。 23T支持ArrayBuffer, [ImageSource](../apis-image-kit/arkts-apis-image-ImageSource.md), [MovingPhoto](arkts-apis-photoAccessHelper-MovingPhoto.md)和boolean四种数据类型。其中,ArrayBuffer表示图片/视频资源数据,[ImageSource](../apis-image-kit/arkts-apis-image-ImageSource.md)表示图片源,[MovingPhoto](arkts-apis-photoAccessHelper-MovingPhoto.md)表示动态照片对象,boolean表示图片/视频资源是否成功写入应用沙箱。 24 25map支持返回的信息: 26 27| map键名 | 值说明 | 28|----------|-------| 29| 'quality' | 图片质量。高质量为'high',低质量为'low'。 | 30 31**系统能力**:SystemCapability.FileManagement.PhotoAccessHelper.Core 32 33**参数:** 34 35| 参数名 | 类型 | 必填 | 说明 | 36|------|---| ---- |-------------------------------------------------------------------------------| 37| data | T | 是 | 已就绪的图片资源数据。泛型,支持ArrayBuffer, [ImageSource](../apis-image-kit/arkts-apis-image-ImageSource.md), [MovingPhoto](arkts-apis-photoAccessHelper-MovingPhoto.md)和boolean四种数据类型。 | 38| map<sup>12+</sup> | Map<string, string> | 否 | 用于获取图片资源的额外信息,如图片质量。当前仅支持'quality'。 | 39 40**示例:** 41 42```ts 43import { image } from '@kit.ImageKit'; 44 45class MediaHandler implements photoAccessHelper.MediaAssetDataHandler<image.ImageSource> { 46 onDataPrepared = (data: image.ImageSource, map: Map<string, string>) => { 47 if (data === undefined) { 48 console.error('Error occurred when preparing data'); 49 return; 50 } 51 // 自定义对ImageSource的处理逻辑。 52 console.info('on image data prepared, photo quality is ' + map['quality']); 53 } 54} 55 56class MediaDataHandler implements photoAccessHelper.MediaAssetDataHandler<ArrayBuffer> { 57 onDataPrepared = (data: ArrayBuffer, map: Map<string, string>) => { 58 if (data === undefined) { 59 console.error('Error occurred when preparing data'); 60 return; 61 } 62 // 自定义对ArrayBuffer的处理逻辑。 63 console.info('on image data prepared, photo quality is ' + map['quality']); 64 } 65} 66 67class MovingPhotoHandler implements photoAccessHelper.MediaAssetDataHandler<photoAccessHelper.MovingPhoto> { 68 onDataPrepared = (data: photoAccessHelper.MovingPhoto, map: Map<string, string>) => { 69 if (data === undefined) { 70 console.error('Error occurred when preparing data'); 71 return; 72 } 73 // 自定义对MovingPhoto的处理逻辑。 74 console.info('on image data prepared, photo quality is ' + map['quality']); 75 } 76} 77``` 78