• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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