• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# @ohos.multimedia.medialibrary (媒体库管理)
2
3> **说明:**
4> - 该组件从API Version 6开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
5> - 从API Version 9开始废弃。保留至API Version 13版本。
6> - 部分功能变更为系统接口,仅供系统应用使用,请使用[@ohos.filemanagement.userFileManager](js-apis-userFileManager.md)相应接口替代。
7> - 媒体资源选择和保存功能仍开放给普通应用,请使用[@ohos.file.picker](js-apis-file-picker.md)相应接口替代。
8
9## 导入模块
10```js
11import mediaLibrary from '@ohos.multimedia.mediaLibrary';
12```
13
14## mediaLibrary.getMediaLibrary<sup>8+</sup>
15
16getMediaLibrary(context: Context): MediaLibrary
17
18获取媒体库的实例,用于访问和修改用户等个人媒体数据信息(如音频、视频、图片、文档等)。
19
20此接口仅可在Stage模型下使用。
21
22**系统能力**:SystemCapability.Multimedia.MediaLibrary.Core
23
24**参数:**
25
26| 参数名  | 类型    | 必填 | 说明                       |
27| ------- | ------- | ---- | -------------------------- |
28| context | Context | 是   | 传入Ability实例的Context。 |
29
30**返回值:**
31
32| 类型                            | 说明    |
33| ----------------------------- | :---- |
34| [MediaLibrary](#medialibrary) | 媒体库实例 |
35
36**示例:(从API Version 9开始)**
37
38```ts
39// 获取mediaLibrary实例,后续用到此实例均采用此处获取的实例
40const context = getContext(this);
41let media = mediaLibrary.getMediaLibrary(context);
42```
43
44**示例:(API Version 8)**
45
46```js
47import featureAbility from '@ohos.ability.featureAbility';
48
49let context = featureAbility.getContext();
50let media = mediaLibrary.getMediaLibrary(context);
51```
52
53## mediaLibrary.getMediaLibrary
54
55getMediaLibrary(): MediaLibrary
56
57获取媒体库的实例,用于访问和修改用户等个人媒体数据信息(如音频、视频、图片、文档等)。
58
59此接口仅可在FA模型下使用。
60
61**系统能力**:SystemCapability.Multimedia.MediaLibrary.Core
62
63**返回值:**
64
65| 类型                          | 说明       |
66| ----------------------------- | :--------- |
67| [MediaLibrary](#medialibrary) | 媒体库实例 |
68
69**示例:**
70
71```js
72let media = mediaLibrary.getMediaLibrary();
73```
74
75## MediaLibrary
76
77### getFileAssets<sup>7+</sup>
78
79
80getFileAssets(options: MediaFetchOptions, callback: AsyncCallback&lt;FetchFileResult&gt;): void
81
82获取文件资源,使用callback方式返回异步结果。
83
84**需要权限**:ohos.permission.READ_MEDIA
85
86**系统能力**:SystemCapability.Multimedia.MediaLibrary.Core
87
88**参数:**
89
90| 参数名   | 类型                                                | 必填 | 说明                              |
91| -------- | --------------------------------------------------- | ---- | --------------------------------- |
92| options  | [MediaFetchOptions](#mediafetchoptions7)            | 是   | 文件获取选项                      |
93| callback | AsyncCallback<[FetchFileResult](#fetchfileresult7)> | 是   | 异步获取FetchFileResult之后的回调 |
94
95**示例:**
96
97```js
98async function example() {
99    let fileKeyObj = mediaLibrary.FileKey;
100    let imageType = mediaLibrary.MediaType.IMAGE;
101    // 创建文件获取选项,此处参数为获取image类型的文件资源
102    let imagesFetchOp = {
103        selections: fileKeyObj.MEDIA_TYPE + '= ?',
104        selectionArgs: [imageType.toString()],
105    };
106    // 获取文件资源,使用callback方式返回异步结果
107    media.getFileAssets(imagesFetchOp, (error, fetchFileResult) => {
108        // 判断获取的文件资源的检索结果集是否为undefined,若为undefined则接口调用失败
109        if (fetchFileResult == undefined) {
110            console.error('get fetchFileResult failed with error: ' + error);
111            return;
112        }
113        // 获取文件检索结果集中的总数
114        const count = fetchFileResult.getCount();
115        // 判断结果集中的数量是否小于0,小于0时表示接口调用失败
116        if (count < 0) {
117            console.error('get count from fetchFileResult failed, count: ' + count);
118            return;
119        }
120        // 判断结果集中的数量是否等于0,等于0时表示接口调用成功,但是检索结果集为空,请检查文件获取选项参数配置是否有误和设备中是否存在相应文件
121        if (count == 0) {
122            console.info('The count of fetchFileResult is zero');
123            return;
124        }
125        console.info('Get fetchFileResult successfully, count: ' + count);
126        // 获取文件检索结果集中的第一个资源,使用callback方式返回异步结果
127        fetchFileResult.getFirstObject((error, fileAsset) => {
128            // 检查获取的第一个资源是否为undefined,若为undefined则接口调用失败
129            if (fileAsset == undefined) {
130                console.error('get first object failed with error: ' + error);
131                return;
132            }
133            console.info('fileAsset.displayName ' + '0 : ' + fileAsset.displayName);
134            // 调用 getNextObject 接口获取下一个资源,直到最后一个
135            for (let i = 1; i < count; i++) {
136                let fileAsset = await fetchFileResult.getNextObject();
137                console.info('fileAsset.displayName ' + i + ': ' + fileAsset.displayName);
138            }
139            // 释放FetchFileResult实例并使其失效。无法调用其他方法
140            fetchFileResult.close();
141        });
142    });
143}
144```
145
146### getFileAssets<sup>7+</sup>
147
148getFileAssets(options: MediaFetchOptions): Promise&lt;FetchFileResult&gt;
149
150获取文件资源,使用Promise方式返回结果。
151
152**需要权限**:ohos.permission.READ_MEDIA
153
154**系统能力**:SystemCapability.Multimedia.MediaLibrary.Core
155
156**参数:**
157
158| 参数名  | 类型                                     | 必填 | 说明         |
159| ------- | ---------------------------------------- | ---- | ------------ |
160| options | [MediaFetchOptions](#mediafetchoptions7) | 是   | 文件检索选项 |
161
162**返回值**
163
164| 类型                                 | 说明           |
165| ------------------------------------ | -------------- |
166| [FetchFileResult](#fetchfileresult7) | 文件数据结果集 |
167
168**示例:**
169
170```js
171async function example() {
172    let fileKeyObj = mediaLibrary.FileKey;
173    let imageType = mediaLibrary.MediaType.IMAGE;
174    // 创建文件获取选项,此处参数为获取image类型的文件资源
175    let imagesFetchOp = {
176        selections: fileKeyObj.MEDIA_TYPE + '= ?',
177        selectionArgs: [imageType.toString()],
178    };
179    // 获取文件资源,使用Promise方式返回结果
180    media.getFileAssets(imagesFetchOp).then((fetchFileResult) => {
181        // 获取文件检索结果集中的总数
182        const count = fetchFileResult.getCount();
183        // 判断结果集中的数量是否小于0,小于0时表示接口调用失败
184        if (count < 0) {
185            console.error('get count from fetchFileResult failed, count: ' + count);
186            return;
187        }
188        // 判断结果集中的数量是否等于0,等于0时表示接口调用成功,但是检索结果集为空,请检查文件获取选项参数配置是否有误和设备中是否存在相应文件
189        if (count == 0) {
190            console.info('The count of fetchFileResult is zero');
191            return;
192        }
193        console.info('Get fetchFileResult successfully, count: ' + count);
194        // 获取文件检索结果集中的第一个资源,使用Promise方式返回异步结果
195        fetchFileResult.getFirstObject().then((fileAsset) => {
196            console.info('fileAsset.displayName ' + '0 : ' + fileAsset.displayName);
197            // 调用 getNextObject 接口获取下一个资源,直到最后一个
198            for (let i = 1; i < count; i++) {
199                let fileAsset = await fetchFileResult.getNextObject();
200                console.info('fileAsset.displayName ' + i + ': ' + fileAsset.displayName);
201            }
202            // 释放FetchFileResult实例并使其失效。无法调用其他方法
203            fetchFileResult.close();
204        }).catch((error) => {
205            // 调用getFirstObject接口失败
206            console.error('get first object failed with error: ' + error);
207        });
208    }).catch((error) => {
209        // 调用getFileAssets接口失败
210        console.error('get file assets failed with error: ' + error);
211    });
212}
213```
214
215### on<sup>8+</sup>
216
217on(type: 'deviceChange'&#124;'albumChange'&#124;'imageChange'&#124;'audioChange'&#124;'videoChange'&#124;'fileChange'&#124;'remoteFileChange', callback: Callback&lt;void&gt;): void
218
219打开媒体库变更通知,使用callback方式返回异步结果。
220
221**系统能力**:SystemCapability.Multimedia.MediaLibrary.Core
222
223**参数:**
224
225| 参数名      | 类型                   | 必填   | 说明                                       |
226| -------- | -------------------- | ---- | ---------------------------------------- |
227| type     | 'deviceChange'&#124;<br/>'albumChange'&#124;<br/>'imageChange'&#124;<br/>'audioChange'&#124;<br/>'videoChange'&#124;<br/>'fileChange'&#124;<br/>'remoteFileChange'               | 是    | 媒体类型 <br/>'deviceChange':&nbsp;注册设备变更 <br/>'albumChange':&nbsp;相册变更<br/>'imageChange':&nbsp;图片文件变更<br/>'audioChange': &nbsp;音频文件变更<br/>'videoChange':  &nbsp;视频文件变更<br/>'fileChange':     &nbsp;文件变更<br/>'remoteFileChange':&nbsp;注册设备上文件变更 |
228| callback | Callback&lt;void&gt; | 是    | 回调返回空                                    |
229
230**示例:**
231
232```js
233media.on('imageChange', () => {
234    // image file had changed, do something
235})
236```
237### off<sup>8+</sup>
238
239off(type: 'deviceChange'&#124;'albumChange'&#124;'imageChange'&#124;'audioChange'&#124;'videoChange'&#124;'fileChange'&#124;'remoteFileChange', callback?: Callback&lt;void&gt;): void
240
241关闭媒体库变更通知,使用callback方式返回异步结果。
242
243**系统能力**:SystemCapability.Multimedia.MediaLibrary.Core
244
245**参数:**
246
247| 参数名      | 类型                   | 必填   | 说明                                       |
248| -------- | -------------------- | ---- | ---------------------------------------- |
249| type     | 'deviceChange'&#124;<br/>'albumChange'&#124;<br/>'imageChange'&#124;<br/>'audioChange'&#124;<br/>'videoChange'&#124;<br/>'fileChange'&#124;<br/>'remoteFileChange'               | 是    | 媒体类型 <br/>'deviceChange':&nbsp;注册设备变更 <br/>'albumChange':&nbsp;相册变更<br/>'imageChange':&nbsp;图片文件变更<br/>'audioChange': &nbsp;音频文件变更<br/>'videoChange':  &nbsp;视频文件变更<br/>'fileChange':     &nbsp;文件变更<br/>'remoteFileChange':&nbsp;注册设备上文件变更 |
250| callback | Callback&lt;void&gt; | 否    | 回调返回空                                    |
251
252**示例:**
253
254```js
255media.off('imageChange', () => {
256    // stop listening successfully
257})
258```
259
260### createAsset<sup>8+</sup>
261
262createAsset(mediaType: MediaType, displayName: string, relativePath: string, callback: AsyncCallback&lt;FileAsset&gt;): void
263
264创建媒体资源,使用callback方式返回结果。
265
266**需要权限**:ohos.permission.READ_MEDIA, ohos.permission.WRITE_MEDIA
267
268**系统能力**:SystemCapability.Multimedia.MediaLibrary.Core
269
270**参数:**
271
272| 参数名       | 类型                                    | 必填 | 说明                                                         |
273| ------------ | --------------------------------------- | ---- | ------------------------------------------------------------ |
274| mediaType    | [MediaType](#mediatype8)                | 是   | 媒体类型                                                     |
275| displayName  | string                                  | 是   | 展示文件名                                                   |
276| relativePath | string                                  | 是   | 文件保存路径,可以通过[getPublicDirectory](#getpublicdirectory8)获取不同类型文件的保存路径 |
277| callback     | AsyncCallback<[FileAsset](#fileasset7)> | 是   | 异步获取媒体数据FileAsset之后的回调                          |
278
279**示例:**
280
281```js
282async function example() {
283    // 使用Callback方式创建Image类型文件
284    let mediaType = mediaLibrary.MediaType.IMAGE;
285    let DIR_IMAGE = mediaLibrary.DirectoryType.DIR_IMAGE;
286    const path = await media.getPublicDirectory(DIR_IMAGE);
287    media.createAsset(mediaType, 'imageCallBack.jpg', path + 'myPicture/', (error, fileAsset) => {
288        if (fileAsset != undefined) {
289            console.info('createAsset successfully, message');
290        } else {
291            console.error('createAsset failed with error: ' + error);
292        }
293    });
294}
295```
296
297### createAsset<sup>8+</sup>
298
299createAsset(mediaType: MediaType, displayName: string, relativePath: string): Promise&lt;FileAsset&gt;
300
301创建媒体资源,使用Promise方式返回结果。
302
303**需要权限**:ohos.permission.READ_MEDIA, ohos.permission.WRITE_MEDIA
304
305**系统能力**:SystemCapability.Multimedia.MediaLibrary.Core
306
307**参数:**
308
309| 参数名       | 类型                     | 必填 | 说明                                                         |
310| ------------ | ------------------------ | ---- | ------------------------------------------------------------ |
311| mediaType    | [MediaType](#mediatype8) | 是   | 媒体类型                                                     |
312| displayName  | string                   | 是   | 展示文件名                                                   |
313| relativePath | string                   | 是   | 相对路径,可以通过getPublicDirectory获取不同类型媒体文件的一层目录的relative path |
314
315**返回值**
316
317| 类型                     | 说明              |
318| ------------------------ | ----------------- |
319| [FileAsset](#fileasset7) | 媒体数据FileAsset |
320
321**示例:**
322
323```js
324async function example() {
325    // 使用Promise方式创建Image类型文件
326    let mediaType = mediaLibrary.MediaType.IMAGE;
327    let DIR_IMAGE = mediaLibrary.DirectoryType.DIR_IMAGE;
328    const path = await media.getPublicDirectory(DIR_IMAGE);
329    media.createAsset(mediaType, 'imagePromise.jpg', path + 'myPicture/').then((fileAsset) => {
330        console.info('createAsset successfully, message = ' + JSON.stringify(fileAsset));
331    }).catch((error) => {
332        console.error('createAsset failed with error: ' + error);
333    });
334}
335```
336
337### deleteAsset<sup>8+</sup>
338
339deleteAsset(uri: string): Promise\<void>
340
341删除媒体文件资源
342
343**系统接口**:此接口为系统接口。
344
345**需要权限**:ohos.permission.READ_MEDIAohos.permission.WRITE_MEDIA
346
347**系统能力**:SystemCapability.Multimedia.MediaLibrary.Core
348
349**参数:**
350
351| 参数名      | 类型                           | 必填   | 说明              |
352| -------- | ---------------------------- | ---- | --------------- |
353| uri | string | 是    | 需要删除的媒体文件资源的uri |
354
355**返回值:**
356| 类型                  | 说明                   |
357| ------------------- | -------------------- |
358| Promise&lt;void&gt; | Promise回调返回删除的结果。 |
359
360**示例:**
361
362```js
363async function example() {
364    let fileKeyObj = mediaLibrary.FileKey;
365    let fileType = mediaLibrary.MediaType.FILE;
366    let option = {
367        selections: fileKeyObj.MEDIA_TYPE + '= ?',
368        selectionArgs: [fileType.toString()],
369    };
370    const fetchFileResult = await media.getFileAssets(option);
371    let asset = await fetchFileResult.getFirstObject();
372    if (asset == undefined) {
373        console.error('asset not exist');
374        return;
375    }
376    media.deleteAsset(asset.uri).then(() => {
377        console.info('deleteAsset successfully');
378    }).catch((error) => {
379        console.error('deleteAsset failed with error: ' + error);
380    });
381    fetchFileResult.close();
382}
383```
384
385### deleteAsset<sup>8+</sup>
386deleteAsset(uri: string, callback: AsyncCallback\<void>): void
387
388删除媒体文件资源
389
390**系统接口**:此接口为系统接口。
391
392**需要权限**:ohos.permission.READ_MEDIAohos.permission.WRITE_MEDIA
393
394**系统能力**:SystemCapability.Multimedia.MediaLibrary.Core
395
396**参数:**
397
398| 参数名      | 类型                           | 必填   | 说明              |
399| -------- | ---------------------------- | ---- | --------------- |
400| uri | string | 是    | 需要删除的媒体文件资源的uri。 |
401|callback |AsyncCallback\<void>| 是  |回调函数,用于获取删除的结果。|
402
403**示例:**
404
405```js
406async function example() {
407    let fileKeyObj = mediaLibrary.FileKey;
408    let fileType = mediaLibrary.MediaType.FILE;
409    let option = {
410        selections: fileKeyObj.MEDIA_TYPE + '= ?',
411        selectionArgs: [fileType.toString()],
412    };
413    const fetchFileResult = await media.getFileAssets(option);
414    let asset = await fetchFileResult.getFirstObject();
415    if (asset == undefined) {
416        console.error('asset not exist');
417        return;
418    }
419    media.deleteAsset(asset.uri, (error) => {
420        if (error != undefined) {
421            console.error('deleteAsset failed with error: ' + error);
422        } else {
423            console.info('deleteAsset successfully');
424        }
425    });
426    fetchFileResult.close();
427}
428```
429
430### getPublicDirectory<sup>8+</sup>
431
432getPublicDirectory(type: DirectoryType, callback: AsyncCallback&lt;string&gt;): void
433
434获取公共目录路径,使用callback方式返回结果。
435
436**系统能力**:SystemCapability.Multimedia.MediaLibrary.Core
437
438**参数:**
439
440| 参数名   | 类型                             | 必填 | 说明                      |
441| -------- | -------------------------------- | ---- | ------------------------- |
442| type     | [DirectoryType](#directorytype8) | 是   | 公共目录类型              |
443| callback | AsyncCallback&lt;string&gt;      | 是   | callback 返回公共目录路径 |
444
445**示例:**
446
447```js
448let DIR_CAMERA = mediaLibrary.DirectoryType.DIR_CAMERA;
449media.getPublicDirectory(DIR_CAMERA, (error, dicResult) => {
450    if (dicResult == 'Camera/') {
451        console.info('getPublicDirectory DIR_CAMERA successfully');
452    } else {
453        console.error('getPublicDirectory DIR_CAMERA failed with error: ' + error);
454    }
455});
456```
457
458### getPublicDirectory<sup>8+</sup>
459
460getPublicDirectory(type: DirectoryType): Promise&lt;string&gt;
461
462获取公共目录路径,使用Promise方式返回结果。
463
464**系统能力**:SystemCapability.Multimedia.MediaLibrary.Core
465
466**参数:**
467
468| 参数名 | 类型                             | 必填 | 说明         |
469| ------ | -------------------------------- | ---- | ------------ |
470| type   | [DirectoryType](#directorytype8) | 是   | 公共目录类型 |
471
472**返回值:**
473
474| 类型             | 说明             |
475| ---------------- | ---------------- |
476| Promise\<string> | 返回公共目录路径 |
477
478**示例:**
479
480```js
481async function example() {
482    let DIR_CAMERA = mediaLibrary.DirectoryType.DIR_CAMERA;
483    media.getPublicDirectory(DIR_CAMERA).then((dicResult) => {
484        if (dicResult == 'Camera/') {
485            console.info('getPublicDirectory DIR_CAMERA successfully');
486        } else {
487            console.error('getPublicDirectory DIR_CAMERA failed');
488        }
489    }).catch((error) => {
490        console.error('getPublicDirectory failed with error: ' + error);
491    });
492}
493```
494
495### getAlbums<sup>7+</sup>
496
497getAlbums(options: MediaFetchOptions, callback: AsyncCallback&lt;Array&lt;Album&gt;&gt;): void
498
499获取相册列表,使用callback 方式返回结果。
500
501**需要权限**:ohos.permission.READ_MEDIA
502
503**系统能力**:SystemCapability.Multimedia.MediaLibrary.Core
504
505**参数**
506
507| 参数名   | 类型                                         | 必填 | 说明                        |
508| -------- | -------------------------------------------- | ---- | --------------------------- |
509| options  | [MediaFetchOptions](#mediafetchoptions7)     | 是   | 相册获取条件                |
510| callback | AsyncCallback&lt;Array<[Album](#album7)>&gt; | 是   | 异步获取Album列表之后的回调 |
511
512**示例:**
513
514```js
515async function example() {
516    let AlbumNoArgsfetchOp = {
517        selections: '',
518        selectionArgs: [],
519    };
520    media.getAlbums(AlbumNoArgsfetchOp, (error, albumList) => {
521        if (albumList != undefined) {
522            console.info('getAlbums successfully: ' + JSON.stringify(albumList));
523        } else {
524            console.error('getAlbums failed with error: ' + error);
525        }
526    })
527}
528```
529
530### getAlbums<sup>7+</sup>
531
532getAlbums(options: MediaFetchOptions): Promise&lt;Array&lt;Album&gt;&gt;
533
534获取相册列表,使用 promise 方式返回结果。
535
536**需要权限**:ohos.permission.READ_MEDIA
537
538**系统能力**:SystemCapability.Multimedia.MediaLibrary.Core
539
540**参数:**
541
542| 参数名  | 类型                                     | 必填 | 说明         |
543| ------- | ---------------------------------------- | ---- | ------------ |
544| options | [MediaFetchOptions](#mediafetchoptions7) | 是   | 相册获取条件 |
545
546**返回值:**
547
548| 类型                             | 说明          |
549| -------------------------------- | ------------- |
550| Promise<Array<[Album](#album7)>> | 返回Album列表 |
551
552**示例:**
553
554```js
555async function example() {
556    let AlbumNoArgsfetchOp = {
557        selections: '',
558        selectionArgs: [],
559    };
560    media.getAlbums(AlbumNoArgsfetchOp).then((albumList) => {
561        console.info('getAlbums successfully: ' + JSON.stringify(albumList));
562    }).catch((error) => {
563        console.error('getAlbums failed with error: ' + error);
564    });
565}
566```
567
568### release<sup>8+</sup>
569
570release(callback: AsyncCallback&lt;void&gt;): void
571
572释放MediaLibrary实例。
573当后续不需要使用MediaLibrary实例中的方法时调用。
574
575**系统能力**:SystemCapability.Multimedia.MediaLibrary.Core
576
577**参数:**
578
579| 参数名      | 类型                        | 必填   | 说明         |
580| -------- | ------------------------- | ---- | ---------- |
581| callback | AsyncCallback&lt;void&gt; | 是    | 无返回值 |
582
583**示例:**
584
585```js
586media.release(() => {
587    // do something
588});
589```
590
591### release<sup>8+</sup>
592
593release(): Promise&lt;void&gt;
594
595释放MediaLibrary实例。
596当后续不需要使用MediaLibrary实例中的方法时调用。
597
598**系统能力**:SystemCapability.Multimedia.MediaLibrary.Core
599
600**返回值:**
601
602| 类型                  | 说明                   |
603| ------------------- | -------------------- |
604| Promise&lt;void&gt; | Promise实例,用于获取异步返回结果 |
605
606**示例:**
607
608```js
609media.release()
610```
611
612### storeMediaAsset
613
614storeMediaAsset(option: MediaAssetOption, callback: AsyncCallback&lt;string&gt;): void
615
616保存媒体资源,以异步方法获取保存成功的URI,使用callback形式返回结果。
617
618> **说明**:此接口为API Version 6开始支持,只支持FA模型使用。
619
620**系统能力**:SystemCapability.Multimedia.MediaLibrary.Core
621
622**参数:**
623
624| 参数名      | 类型                                    | 必填   | 说明                      |
625| -------- | ------------------------------------- | ---- | ----------------------- |
626| option   | [MediaAssetOption](#mediaassetoption) | 是    | 媒体资源选项。                 |
627| callback | AsyncCallback&lt;string&gt;           | 是    | 媒体资源保存回调,返回保存成功后得到的URI。 |
628
629**示例:**
630
631```js
632let option = {
633    src : '/data/storage/el2/base/haps/entry/image.png',
634    mimeType : 'image/*',
635    relativePath : 'Pictures/'
636};
637mediaLibrary.getMediaLibrary().storeMediaAsset(option, (error, value) => {
638    if (error) {
639        console.error('storeMediaAsset failed with error: ' + error);
640        return;
641    }
642    console.info('Media resources stored. ');
643    // Obtain the URI that stores media resources.
644});
645```
646
647
648### storeMediaAsset
649
650storeMediaAsset(option: MediaAssetOption): Promise&lt;string&gt;
651
652保存媒体资源,以异步方法获取保存成功的URI,使用Promise形式返回结果。
653
654> **说明**:此接口为API Version 6开始支持,只支持FA模型使用。
655
656**系统能力**:SystemCapability.Multimedia.MediaLibrary.Core
657
658**参数:**
659
660| 参数名    | 类型                                    | 必填   | 说明      |
661| ------ | ------------------------------------- | ---- | ------- |
662| option | [MediaAssetOption](#mediaassetoption) | 是    | 媒体资源选项。 |
663
664**返回值:**
665
666| 类型                    | 说明                           |
667| --------------------- | ---------------------------- |
668| Promise&lt;string&gt; | Promise实例,用于异步获取保存成功后得到的URI。 |
669
670**示例:**
671
672```js
673let option = {
674    src : '/data/storage/el2/base/haps/entry/image.png',
675    mimeType : 'image/*',
676    relativePath : 'Pictures/'
677};
678mediaLibrary.getMediaLibrary().storeMediaAsset(option).then((value) => {
679    console.info('Media resources stored.');
680    // Obtain the URI that stores media resources.
681}).catch((error) => {
682    console.error('storeMediaAsset failed with error: ' + error);
683});
684```
685
686
687### startImagePreview
688
689startImagePreview(images: Array&lt;string&gt;, index: number, callback: AsyncCallback&lt;void&gt;): void
690
691启动图片预览界面并限定预览开始显示的图片。可以预览指定序号的单张本地图片(datashare://),也可以预览列表中的所有网络图片(https://)。使用callback方式进行异步回调。
692
693> **说明**:
694> 此接口为API Version 6开始支持,只支持FA模型使用。
695> 建议使用[Image组件](../arkui-ts/ts-basic-components-image.md)替代。<br/>Image组件,可用于本地图片和网络图片的渲染展示。
696
697**系统能力**:SystemCapability.Multimedia.MediaLibrary.Core
698
699**参数:**
700
701| 参数名      | 类型                        | 必填   | 说明                                       |
702| -------- | ------------------------- | ---- | ---------------------------------------- |
703| images   | Array&lt;string&gt;       | 是    | 预览的图片URI('https://','datashare://')列表。 |
704| index    | number                    | 是    | 开始显示的图片序号。                               |
705| callback | AsyncCallback&lt;void&gt; | 是    | 图片预览回调,失败时返回错误信息。                        |
706
707**示例:**
708
709```js
710let images = [
711    'datashare:///media/xxxx/2',
712    'datashare:///media/xxxx/3'
713];
714/* 网络图片使用方式
715let images = [
716    'https://media.xxxx.com/image1.jpg',
717    'https://media.xxxx.com/image2.jpg'
718];
719*/
720let index = 1;
721mediaLibrary.getMediaLibrary().startImagePreview(images, index, (error) => {
722    if (error) {
723        console.error('startImagePreview failed with error: ' + error);
724        return;
725    }
726    console.info('Succeeded in previewing the images.');
727});
728```
729
730
731### startImagePreview
732
733startImagePreview(images: Array&lt;string&gt;, callback: AsyncCallback&lt;void&gt;): void
734
735启动图片预览界面,可以预览列表中首张本地图片(datashare://),也可以预览列表中的所有网络图片(https://)。使用callback方式进行异步回调。
736
737> **说明**:
738> 此接口为API Version 6开始支持,只支持FA模型使用。
739> 建议使用[Image组件](../arkui-ts/ts-basic-components-image.md)替代。<br/>Image组件,可用于本地图片和网络图片的渲染展示。
740
741**系统能力**:SystemCapability.Multimedia.MediaLibrary.Core
742
743**参数:**
744
745| 参数名      | 类型                        | 必填   | 说明                                       |
746| -------- | ------------------------- | ---- | ---------------------------------------- |
747| images   | Array&lt;string&gt;       | 是    | 预览的图片URI('https://','datashare://')列表。 |
748| callback | AsyncCallback&lt;void&gt; | 是    | 图片预览回调,失败时返回错误信息。                        |
749
750**示例:**
751
752```js
753let images = [
754    'datashare:///media/xxxx/2',
755    'datashare:///media/xxxx/3'
756];
757/* 网络图片使用方式
758let images = [
759    'https://media.xxxx.com/image1.jpg',
760    'https://media.xxxx.com/image2.jpg'
761];
762*/
763mediaLibrary.getMediaLibrary().startImagePreview(images, (error) => {
764    if (error) {
765        console.error('startImagePreview failed with error: ' + error);
766        return;
767    }
768    console.info('Succeeded in previewing the images.');
769});
770```
771
772
773### startImagePreview
774
775startImagePreview(images: Array&lt;string&gt;, index?: number): Promise&lt;void&gt;
776
777启动图片预览界面并限定预览开始显示的图片。可以预览指定序号的单张本地图片(datashare://),也可以预览列表中的所有网络图片(https://)。使用Promise方式进行异步回调。
778
779> **说明**:
780> 此接口为API Version 6开始支持,只支持FA模型使用。
781> 建议使用[Image组件](../arkui-ts/ts-basic-components-image.md)替代。<br/>Image组件,可用于本地图片和网络图片的渲染展示。
782
783**系统能力**:SystemCapability.Multimedia.MediaLibrary.Core
784
785**参数:**
786
787| 参数名    | 类型                  | 必填   | 说明                                       |
788| ------ | ------------------- | ---- | ---------------------------------------- |
789| images | Array&lt;string&gt; | 是    | 预览的图片URI('https://','datashare://')列表。 |
790| index  | number              | 否    | 开始显示的图片序号,不选择时默认为0。                      |
791
792**返回值:**
793
794| 类型                  | 说明                              |
795| ------------------- | ------------------------------- |
796| Promise&lt;void&gt; | Promise实例,用于异步获取预览结果,失败时返回错误信息。 |
797
798**示例:**
799
800```js
801let images = [
802    'datashare:///media/xxxx/2',
803    'datashare:///media/xxxx/3'
804];
805/* 网络图片使用方式
806let images = [
807    'https://media.xxxx.com/image1.jpg',
808    'https://media.xxxx.com/image2.jpg'
809];
810*/
811let index = 1;
812mediaLibrary.getMediaLibrary().startImagePreview(images, index).then(() => {
813    console.info('Succeeded in previewing the images.');
814}).catch((error) => {
815    console.error('startImagePreview failed with error: ' + error);
816});
817```
818
819
820### startMediaSelect
821
822startMediaSelect(option: MediaSelectOption, callback: AsyncCallback&lt;Array&lt;string&gt;&gt;): void
823
824启动媒体选择界面,以异步方法获取选择的媒体URI列表,使用callback形式返回结果。
825
826> **说明**:
827> 此接口为API Version 6开始支持,只支持FA模型使用。
828> 建议使用系统应用图库替代。图库是系统内置的可视资源访问应用,提供图片和视频的管理、浏览等功能,使用方法请参考[OpenHarmony/applications_photos](https://gitee.com/openharmony/applications_photos#4-%E5%85%B8%E5%9E%8B%E6%8E%A5%E5%8F%A3%E7%9A%84%E4%BD%BF%E7%94%A8)829
830**系统能力**:SystemCapability.Multimedia.MediaLibrary.Core
831
832**参数:**
833
834| 参数名      | 类型                                       | 必填   | 说明                                   |
835| -------- | ---------------------------------------- | ---- | ------------------------------------ |
836| option   | [MediaSelectOption](#mediaselectoption)  | 是    | 媒体选择选项。                              |
837| callback | AsyncCallback&lt;Array&lt;string&gt;&gt; | 是    | 媒体选择回调,返回选择的媒体URI(datashare://)列表。 |
838
839**示例:**
840
841```js
842let option : mediaLibrary.MediaSelectOption = {
843    type : 'media',
844    count : 2
845};
846mediaLibrary.getMediaLibrary().startMediaSelect(option, (error, value) => {
847    if (error) {
848        console.error('startMediaSelect failed with error: ' + error);
849        return;
850    }
851    console.info('Media resources selected.');
852    // Obtain the media selection value.
853});
854```
855
856
857### startMediaSelect
858
859startMediaSelect(option: MediaSelectOption): Promise&lt;Array&lt;string&gt;&gt;
860
861启动媒体选择界面,以异步方法获取选择的媒体URI列表,使用Promise形式返回结果。
862
863> **说明**:
864> 此接口为API Version 6开始支持,只支持FA模型使用。
865> 建议使用系统应用图库替代。图库是系统内置的可视资源访问应用,提供图片和视频的管理、浏览等功能,使用方法请参考[OpenHarmony/applications_photos](https://gitee.com/openharmony/applications_photos#4-%E5%85%B8%E5%9E%8B%E6%8E%A5%E5%8F%A3%E7%9A%84%E4%BD%BF%E7%94%A8)866
867**系统能力**:SystemCapability.Multimedia.MediaLibrary.Core
868
869**参数:**
870
871| 参数名    | 类型                                      | 必填   | 说明      |
872| ------ | --------------------------------------- | ---- | ------- |
873| option | [MediaSelectOption](#mediaselectoption) | 是    | 媒体选择选项。 |
874
875**返回值:**
876
877| 类型                                 | 说明                                       |
878| ---------------------------------- | ---------------------------------------- |
879| Promise&lt;Array&lt;string&gt;&gt; | Promise实例,用于异步获取选择的媒体URI(datashare://)列表。 |
880
881**示例:**
882
883```js
884let option : mediaLibrary.MediaSelectOption = {
885    type : 'media',
886    count : 2
887};
888mediaLibrary.getMediaLibrary().startMediaSelect(option).then((value) => {
889    console.info('Media resources selected.');
890    // Obtain the media selection value.
891}).catch((error) => {
892    console.error('startMediaSelect failed with error: ' + error);
893});
894
895```
896### getActivePeers<sup>8+</sup>
897
898getActivePeers(): Promise\<Array\<PeerInfo>>;
899
900获取在线对端设备的信息,使用Promise方式返回异步结果
901
902**系统接口**:此接口为系统接口。
903
904**需要权限**:ohos.permission.READ_MEDIA
905
906**系统能力**:SystemCapability.Multimedia.MediaLibrary.DistributedCore
907
908**返回值:**
909
910| 类型                  | 说明                   |
911| ------------------- | -------------------- |
912|  Promise\<Array\<[PeerInfo](#peerinfo8)>> | 返回获取的所有在线对端设备的PeerInfo |
913
914**示例:**
915
916```js
917async function example() {
918    media.getActivePeers().then((devicesInfo) => {
919        if (devicesInfo != undefined) {
920            console.info('get distributed info ' + JSON.stringify(devicesInfo));
921        } else {
922            console.info('get distributed info is undefined!');
923        }
924    }).catch((error) => {
925        console.error('get distributed info failed with error: ' + error);
926    });
927}
928```
929
930### getActivePeers<sup>8+</sup>
931
932getActivePeers(callback: AsyncCallback\<Array\<PeerInfo>>): void;
933
934获取在线对端设备的信息,使用callback方式返回异步结果。
935
936**系统接口**:此接口为系统接口。
937
938**需要权限**:ohos.permission.READ_MEDIA
939
940**系统能力**:SystemCapability.Multimedia.MediaLibrary.DistributedCore
941
942**返回值:**
943
944| 类型                  | 说明                   |
945| ------------------- | -------------------- |
946| callback: AsyncCallback\<Array\<[PeerInfo](#peerinfo8)>> | 返回获取的所有在线对端设备的PeerInfo |
947
948**示例:**
949
950```js
951async function example() {
952    media.getActivePeers((error, devicesInfo) => {
953        if (devicesInfo != undefined) {
954            console.info('get distributed info ' + JSON.stringify(devicesInfo));
955        } else {
956            console.error('get distributed failed with error: ' + error);
957        }
958    });
959}
960```
961
962
963### getAllPeers<sup>8+</sup>
964
965getAllPeers(): Promise\<Array\<PeerInfo>>;
966
967获取所有对端设备的信息,使用Promise方式返回异步结果
968
969**系统接口**:此接口为系统接口。
970
971**需要权限**:ohos.permission.READ_MEDIA
972
973**系统能力**:SystemCapability.Multimedia.MediaLibrary.DistributedCore
974
975**返回值:**
976
977| 类型                  | 说明                   |
978| ------------------- | -------------------- |
979|  Promise\<Array\<[PeerInfo](#peerinfo8)>> | 返回获取的所有对端设备的PeerInfo |
980
981**示例:**
982
983```js
984async function example() {
985    media.getAllPeers().then((devicesInfo) => {
986        if (devicesInfo != undefined) {
987            console.info('get distributed info ' + JSON.stringify(devicesInfo));
988        } else {
989            console.info('get distributed info is undefined!');
990        }
991    }).catch((error) => {
992        console.error('get distributed info failed with error: ' + error);
993    });
994}
995```
996
997### getAllPeers<sup>8+</sup>
998
999getAllPeers(callback: AsyncCallback\<Array\<PeerInfo>>): void;
1000
1001获取所有对端设备的信息,使用callback方式返回异步结果。
1002
1003**系统接口**:此接口为系统接口。
1004
1005**需要权限**:ohos.permission.READ_MEDIA
1006
1007**系统能力**:SystemCapability.Multimedia.MediaLibrary.DistributedCore
1008
1009**返回值:**
1010
1011| 类型                  | 说明                   |
1012| ------------------- | -------------------- |
1013| callback: AsyncCallback\<Array\<[PeerInfo](#peerinfo8)>> | 返回获取的所有对端设备的PeerInfo |
1014
1015**示例:**
1016
1017```js
1018async function example() {
1019    media.getAllPeers((error, devicesInfo) => {
1020        if (devicesInfo != undefined) {
1021            console.info('get distributed info ' + JSON.stringify(devicesInfo));
1022        } else {
1023            console.error('get distributed failed with error: ' + error);
1024        }
1025    });
1026}
1027```
1028
1029## FileAsset<sup>7+</sup>
1030
1031提供封装文件属性的方法。
1032
1033> **说明:**
1034> 1. title字段默认为去掉后缀的文件名,音频和视频文件会尝试解析文件内容,部分设备写入后在触发扫描时会被还原。
1035> 2. orientation字段部分设备可能不支持修改,建议使用image组件的[ModifyImageProperty](js-apis-image.md#modifyimageproperty9)接口。
1036
1037### 属性
1038
1039**系统能力:** 以下各项对应的系统能力均为SystemCapability.Multimedia.MediaLibrary.Core
1040
1041| 名称                      | 类型                     | 可读 | 可写 | 说明                                                   |
1042| ------------------------- | ------------------------ | ---- | ---- | ------------------------------------------------------ |
1043| id                        | number                   | 是   | 否   | 文件资源编号                                           |
1044| uri                       | string                   | 是   | 否   | 文件资源uri(如:datashare:///media/image/2)         |
1045| mimeType                  | string                   | 是   | 否   | 文件扩展属性                                           |
1046| mediaType<sup>8+</sup>    | [MediaType](#mediatype8) | 是   | 否   | 媒体类型                                               |
1047| displayName               | string                   | 是   | 是   | 显示文件名,包含后缀名                                 |
1048| title                     | string                   | 是   | 是   | 文件标题                                               |
1049| relativePath<sup>8+</sup> | string                   | 是   | 是   | 相对公共目录路径                                       |
1050| parent<sup>8+</sup>       | number                   | 是   | 否   | 父目录id                                               |
1051| size                      | number                   | 是   | 否   | 文件大小(单位:字节)                                 |
1052| dateAdded                 | number                   | 是   | 否   | 添加日期(添加文件时间到1970年1月1日的秒数值)         |
1053| dateModified              | number                   | 是   | 否   | 修改日期(修改文件时间到1970年1月1日的秒数值,修改文件名不会改变此值,当文件内容发生修改时才会更新)|
1054| dateTaken                 | number                   | 是   | 否   | 拍摄日期(文件拍照时间到1970年1月1日的秒数值)         |
1055| artist<sup>8+</sup>       | string                   | 是   | 否   | 作者                                                   |
1056| audioAlbum<sup>8+</sup>   | string                   | 是   | 否   | 专辑                                                   |
1057| width                     | number                   | 是   | 否   | 图片宽度(单位:像素)                                 |
1058| height                    | number                   | 是   | 否   | 图片高度(单位:像素)                                 |
1059| orientation               | number                   | 是   | 是   | 图片显示方向(顺时针旋转角度,如0,90,180  单位:度) |
1060| duration<sup>8+</sup>     | number                   | 是   | 否   | 持续时间(单位:毫秒)                                   |
1061| albumId                   | number                   | 是   | 否   | 文件所归属的相册编号                                   |
1062| albumUri<sup>8+</sup>     | string                   | 是   | 否   | 文件所归属相册uri                                      |
1063| albumName                 | string                   | 是   | 否   | 文件所归属相册名称                                     |
1064
1065
1066### isDirectory<sup>8+</sup>
1067
1068isDirectory(callback: AsyncCallback&lt;boolean&gt;): void
1069
1070判断fileAsset是否为目录,使用callback方式返回异步结果。
1071
1072**需要权限**:ohos.permission.READ_MEDIA
1073
1074**系统能力**:SystemCapability.Multimedia.MediaLibrary.Core
1075
1076**参数:**
1077
1078| 参数名      | 类型                           | 必填   | 说明                  |
1079| -------- | ---------------------------- | ---- | ------------------- |
1080| callback | AsyncCallback&lt;boolean&gt; | 是    | 当前FileAsset是否是目录的回调 |
1081
1082**示例:**
1083
1084```js
1085async function example() {
1086    let fileKeyObj = mediaLibrary.FileKey;
1087    let imageType = mediaLibrary.MediaType.IMAGE;
1088    let getImageOp = {
1089        selections: fileKeyObj.MEDIA_TYPE + '= ?',
1090        selectionArgs: [imageType.toString()],
1091        order: fileKeyObj.DATE_ADDED + ' DESC',
1092    };
1093    const fetchFileResult = await media.getFileAssets(getImageOp);
1094    const asset = await fetchFileResult.getFirstObject();
1095    asset.isDirectory((error, isDirectory) => {
1096        if (error) {
1097            console.error('isDirectory failed with error: ' + error);
1098        } else {
1099            console.info('isDirectory result:' + isDirectory);
1100        }
1101    });
1102    fetchFileResult.close();
1103}
1104```
1105
1106### isDirectory<sup>8+</sup>
1107
1108isDirectory():Promise&lt;boolean&gt;
1109
1110判断fileAsset是否为目录,使用Promise方式返回异步结果。
1111
1112**需要权限**:ohos.permission.READ_MEDIA
1113
1114**系统能力**:SystemCapability.Multimedia.MediaLibrary.Core
1115
1116**返回值:**
1117
1118| 类型                     | 说明                           |
1119| ---------------------- | ---------------------------- |
1120| Promise&lt;boolean&gt; | Promise实例,返回当前FileAsset是否是目录 |
1121
1122**示例:**
1123
1124```js
1125async function example() {
1126    let fileKeyObj = mediaLibrary.FileKey;
1127    let imageType = mediaLibrary.MediaType.IMAGE;
1128    let getImageOp = {
1129        selections: fileKeyObj.MEDIA_TYPE + '= ?',
1130        selectionArgs: [imageType.toString()],
1131        order: fileKeyObj.DATE_ADDED + ' DESC',
1132    };
1133    const fetchFileResult = await media.getFileAssets(getImageOp);
1134    const asset = await fetchFileResult.getFirstObject();
1135    asset.isDirectory().then((isDirectory) => {
1136        console.info('isDirectory result:' + isDirectory);
1137    }).catch((error) => {
1138        console.error('isDirectory failed with error: ' + error);
1139    });
1140    fetchFileResult.close();
1141}
1142```
1143
1144### commitModify<sup>8+</sup>
1145
1146commitModify(callback: AsyncCallback&lt;void&gt;): void
1147
1148修改文件的元数据,使用callback方式返回异步结果。
1149
1150**需要权限**:ohos.permission.READ_MEDIA, ohos.permission.WRITE_MEDIA
1151
1152**系统能力**:SystemCapability.Multimedia.MediaLibrary.Core
1153
1154**参数:**
1155
1156| 参数名      | 类型                        | 必填   | 说明    |
1157| -------- | ------------------------- | ---- | ----- |
1158| callback | AsyncCallback&lt;void&gt; | 是    | 回调返回空 |
1159
1160**示例:**
1161
1162```js
1163async function example() {
1164    let fileKeyObj = mediaLibrary.FileKey;
1165    let imageType = mediaLibrary.MediaType.IMAGE;
1166    let getImageOp = {
1167        selections: fileKeyObj.MEDIA_TYPE + '= ?',
1168        selectionArgs: [imageType.toString()],
1169        order: fileKeyObj.DATE_ADDED + ' DESC',
1170    };
1171    const fetchFileResult = await media.getFileAssets(getImageOp);
1172    const asset = await fetchFileResult.getFirstObject();
1173    asset.title = 'newtitle';
1174    asset.commitModify(() => {
1175        console.info('commitModify successfully');
1176    });
1177    fetchFileResult.close();
1178}
1179```
1180
1181### commitModify<sup>8+</sup>
1182
1183commitModify(): Promise&lt;void&gt;
1184
1185修改文件的元数据,使用promise方式返回异步结果。
1186
1187**需要权限**:ohos.permission.READ_MEDIA, ohos.permission.WRITE_MEDIA
1188
1189**系统能力**:SystemCapability.Multimedia.MediaLibrary.Core
1190
1191**返回值:**
1192
1193| 类型                  | 说明         |
1194| ------------------- | ---------- |
1195| Promise&lt;void&gt; | Promise返回空 |
1196
1197**示例:**
1198
1199```js
1200async function example() {
1201    let fileKeyObj = mediaLibrary.FileKey;
1202    let imageType = mediaLibrary.MediaType.IMAGE;
1203    let getImageOp = {
1204        selections: fileKeyObj.MEDIA_TYPE + '= ?',
1205        selectionArgs: [imageType.toString()],
1206        order: fileKeyObj.DATE_ADDED + ' DESC',
1207    };
1208    const fetchFileResult = await media.getFileAssets(getImageOp);
1209    const asset = await fetchFileResult.getFirstObject();
1210    asset.title = 'newtitle';
1211    await asset.commitModify();
1212    fetchFileResult.close();
1213}
1214```
1215
1216### open<sup>8+</sup>
1217
1218open(mode: string, callback: AsyncCallback&lt;number&gt;): void
1219
1220打开当前文件,使用callback方式返回异步结果。
1221
1222**注意**:以 'w' 模式打开文件时,返回的fd无法进行读取。但由于不同文件系统实现上的差异,部分用户态文件系统在 'w' 模式打开时会允许用fd读取。若有针对fd的读写行为,建议使用 'rw' 模式打开文件。当前写操作是互斥的操作,写操作完成后需要调用close进行释放。
1223
1224**需要权限**:ohos.permission.READ_MEDIA or ohos.permission.WRITE_MEDIA
1225
1226**系统能力**:SystemCapability.Multimedia.MediaLibrary.Core
1227
1228**参数**
1229
1230| 参数名      | 类型                          | 必填   | 说明                                  |
1231| -------- | --------------------------- | ---- | ----------------------------------- |
1232| mode     | string                      | 是    | 打开文件方式,如:'r'(只读), 'w'(只写), 'rw'(读写) |
1233| callback | AsyncCallback&lt;number&gt; | 是    | 回调返回文件描述符                            |
1234
1235**示例:**
1236
1237```js
1238async function example() {
1239    let mediaType = mediaLibrary.MediaType.IMAGE;
1240    let DIR_IMAGE = mediaLibrary.DirectoryType.DIR_IMAGE;
1241    const path = await media.getPublicDirectory(DIR_IMAGE);
1242    const asset = await media.createAsset(mediaType, 'image00003.jpg', path);
1243    asset.open('rw', (error, fd) => {
1244        if (fd > 0) {
1245            asset.close(fd);
1246        } else {
1247            console.error('File Open failed with error: ' + error);
1248        }
1249    });
1250}
1251```
1252
1253### open<sup>8+</sup>
1254
1255open(mode: string): Promise&lt;number&gt;
1256
1257打开当前文件,使用promise方式返回异步结果。
1258
1259**注意**:以 'w' 模式打开文件时,返回的fd无法进行读取。但由于不同文件系统实现上的差异,部分用户态文件系统在 'w' 模式打开时会允许用fd读取。若有针对fd的读写行为,建议使用 'rw' 模式打开文件。当前写操作是互斥的操作,写操作完成后需要调用close进行释放。
1260
1261**需要权限**:ohos.permission.READ_MEDIA or ohos.permission.WRITE_MEDIA
1262
1263**系统能力**:SystemCapability.Multimedia.MediaLibrary.Core
1264
1265**参数:**
1266
1267| 参数名  | 类型     | 必填   | 说明                                  |
1268| ---- | ------ | ---- | ----------------------------------- |
1269| mode | string | 是    | 打开文件方式,如:'r'(只读), 'w'(只写), 'rw'(读写) |
1270
1271**返回值:**
1272
1273| 类型                    | 说明            |
1274| --------------------- | ------------- |
1275| Promise&lt;number&gt; | Promise返回文件描述符 |
1276
1277**示例:**
1278
1279```js
1280async function example() {
1281    let mediaType = mediaLibrary.MediaType.IMAGE;
1282    let DIR_IMAGE = mediaLibrary.DirectoryType.DIR_IMAGE;
1283    const path = await media.getPublicDirectory(DIR_IMAGE);
1284    const asset = await media.createAsset(mediaType, 'image00003.jpg', path);
1285    asset.open('rw').then((fd) => {
1286        console.info('File open fd: ' + fd);
1287    }).catch((error) => {
1288        console.error('File open failed with error: ' + error);
1289    });
1290}
1291```
1292
1293### close<sup>8+</sup>
1294
1295close(fd: number, callback: AsyncCallback&lt;void&gt;): void
1296
1297关闭当前文件,使用callback方式返回异步结果。
1298
1299**需要权限**:ohos.permission.READ_MEDIA or ohos.permission.WRITE_MEDIA
1300
1301**系统能力**:SystemCapability.Multimedia.MediaLibrary.Core
1302
1303**参数:**
1304
1305| 参数名      | 类型                        | 必填   | 说明    |
1306| -------- | ------------------------- | ---- | ----- |
1307| fd       | number                    | 是    | 文件描述符 |
1308| callback | AsyncCallback&lt;void&gt; | 是    | 回调返回空 |
1309
1310**示例:**
1311
1312```js
1313async function example() {
1314    let fileKeyObj = mediaLibrary.FileKey;
1315    let imageType = mediaLibrary.MediaType.IMAGE;
1316    let getImageOp = {
1317        selections: fileKeyObj.MEDIA_TYPE + '= ?',
1318        selectionArgs: [imageType.toString()],
1319        order: fileKeyObj.DATE_ADDED + ' DESC',
1320    };
1321    const fetchFileResult = await media.getFileAssets(getImageOp);
1322    const asset = await fetchFileResult.getFirstObject();
1323    asset.open('rw').then((fd) => {
1324        console.info('File open fd: ' + fd);
1325        asset.close(fd, (error) => {
1326            if (error) {
1327                console.error('asset.close failed with error: ' + error);
1328            } else {
1329                console.info('asset.close successfully');
1330            }
1331        });
1332    }).catch((error) => {
1333        console.error('File open failed with error: ' + error);
1334    });
1335    fetchFileResult.close();
1336}
1337```
1338
1339### close<sup>8+</sup>
1340
1341close(fd: number): Promise&lt;void&gt;
1342
1343关闭当前文件,使用promise方式返回异步结果。
1344
1345**需要权限**:ohos.permission.READ_MEDIA or ohos.permission.WRITE_MEDIA
1346
1347**系统能力**:SystemCapability.Multimedia.MediaLibrary.Core
1348
1349**参数:**
1350
1351| 参数名  | 类型     | 必填   | 说明    |
1352| ---- | ------ | ---- | ----- |
1353| fd   | number | 是    | 文件描述符 |
1354
1355**返回值:**
1356
1357| 类型                  | 说明         |
1358| ------------------- | ---------- |
1359| Promise&lt;void&gt; | Promise返回空 |
1360
1361**示例:**
1362
1363```js
1364async function example() {
1365    let fileKeyObj = mediaLibrary.FileKey;
1366    let imageType = mediaLibrary.MediaType.IMAGE;
1367    let getImageOp = {
1368        selections: fileKeyObj.MEDIA_TYPE + '= ?',
1369        selectionArgs: [imageType.toString()],
1370        order: fileKeyObj.DATE_ADDED + ' DESC',
1371    };
1372    const fetchFileResult = await media.getFileAssets(getImageOp);
1373    const asset = await fetchFileResult.getFirstObject();
1374    asset.open('rw').then((fd) => {
1375        console.info('File fd!' + fd);
1376        asset.close(fd).then(() => {
1377            console.info('asset.close successfully');
1378        }).catch((closeErr) => {
1379            console.error('asset.close fail, closeErr: ' + closeErr);
1380        });
1381    }).catch((error) => {
1382        console.error('open File failed with error: ' + error);
1383    });
1384    fetchFileResult.close();
1385}
1386```
1387
1388### getThumbnail<sup>8+</sup>
1389
1390getThumbnail(callback: AsyncCallback&lt;image.PixelMap&gt;): void
1391
1392获取文件的缩略图,使用callback方式返回异步结果。
1393
1394**需要权限**:ohos.permission.READ_MEDIA
1395
1396**系统能力**:SystemCapability.Multimedia.MediaLibrary.Core
1397
1398**参数:**
1399
1400| 参数名      | 类型                                  | 必填   | 说明               |
1401| -------- | ----------------------------------- | ---- | ---------------- |
1402| callback | AsyncCallback&lt;image.PixelMap&gt; | 是    | 回调返回缩略图的PixelMap |
1403
1404**示例:**
1405
1406```js
1407async function example() {
1408    let fileKeyObj = mediaLibrary.FileKey;
1409    let imageType = mediaLibrary.MediaType.IMAGE;
1410    let getImageOp = {
1411        selections: fileKeyObj.MEDIA_TYPE + '= ?',
1412        selectionArgs: [imageType.toString()],
1413        order: fileKeyObj.DATE_ADDED + ' DESC',
1414    };
1415    const fetchFileResult = await media.getFileAssets(getImageOp);
1416    const asset = await fetchFileResult.getFirstObject();
1417    asset.getThumbnail((error, pixelmap) => {
1418        if (error) {
1419            console.error('mediaLibrary getThumbnail failed with error: ' + error);
1420        } else {
1421            console.info('mediaLibrary getThumbnail Successful, pixelmap ' + JSON.stringify(pixelmap));
1422        }
1423    });
1424    fetchFileResult.close();
1425}
1426```
1427
1428### getThumbnail<sup>8+</sup>
1429
1430getThumbnail(size: Size, callback: AsyncCallback&lt;image.PixelMap&gt;): void
1431
1432获取文件的缩略图,传入缩略图尺寸,使用callback方式返回异步结果。
1433
1434**需要权限**:ohos.permission.READ_MEDIA
1435
1436**系统能力**:SystemCapability.Multimedia.MediaLibrary.Core
1437
1438**参数:**
1439
1440| 参数名      | 类型                                  | 必填   | 说明               |
1441| -------- | ----------------------------------- | ---- | ---------------- |
1442| size     | [Size](#size8)                      | 是    | 缩略图尺寸            |
1443| callback | AsyncCallback&lt;image.PixelMap&gt; | 是    | 回调返回缩略图的PixelMap |
1444
1445**示例:**
1446
1447```js
1448async function example() {
1449    let fileKeyObj = mediaLibrary.FileKey;
1450    let imageType = mediaLibrary.MediaType.IMAGE;
1451    let getImageOp = {
1452        selections: fileKeyObj.MEDIA_TYPE + '= ?',
1453        selectionArgs: [imageType.toString()],
1454        order: fileKeyObj.DATE_ADDED + ' DESC',
1455    };
1456    let size = { width: 720, height: 720 };
1457    const fetchFileResult = await media.getFileAssets(getImageOp);
1458    const asset = await fetchFileResult.getFirstObject();
1459    asset.getThumbnail(size, (error, pixelmap) => {
1460        if (error) {
1461            console.error('mediaLibrary getThumbnail failed with error: ' + error);
1462        } else {
1463            console.info('mediaLibrary getThumbnail Successful, pixelmap ' + JSON.stringify(pixelmap));
1464        }
1465    });
1466    fetchFileResult.close();
1467}
1468```
1469
1470### getThumbnail<sup>8+</sup>
1471
1472getThumbnail(size?: Size): Promise&lt;image.PixelMap&gt;
1473
1474获取文件的缩略图,传入缩略图尺寸,使用promise方式返回异步结果。
1475
1476**需要权限**:ohos.permission.READ_MEDIA
1477
1478**系统能力**:SystemCapability.Multimedia.MediaLibrary.Core
1479
1480**参数:**
1481
1482| 参数名  | 类型             | 必填   | 说明    |
1483| ---- | -------------- | ---- | ----- |
1484| size | [Size](#size8) | 否    | 缩略图尺寸 |
1485
1486**返回值:**
1487
1488| 类型                            | 说明                    |
1489| ----------------------------- | --------------------- |
1490| Promise&lt;image.PixelMap&gt; | Promise返回缩略图的PixelMap |
1491
1492**示例:**
1493
1494```js
1495async function example() {
1496    let fileKeyObj = mediaLibrary.FileKey;
1497    let imageType = mediaLibrary.MediaType.IMAGE;
1498    let getImageOp = {
1499        selections: fileKeyObj.MEDIA_TYPE + '= ?',
1500        selectionArgs: [imageType.toString()],
1501        order: fileKeyObj.DATE_ADDED + ' DESC',
1502    };
1503    let size = { width: 720, height: 720 };
1504    const fetchFileResult = await media.getFileAssets(getImageOp);
1505    const asset = await fetchFileResult.getFirstObject();
1506    asset.getThumbnail(size).then((pixelmap) => {
1507        console.info('mediaLibrary getThumbnail Successful, pixelmap ' + JSON.stringify(pixelmap));
1508    }).catch((error) => {
1509        console.error('mediaLibrary getThumbnail failed with error: ' + error);
1510    });
1511    fetchFileResult.close();
1512}
1513```
1514
1515### favorite<sup>8+</sup>
1516
1517favorite(isFavorite: boolean, callback: AsyncCallback&lt;void&gt;): void
1518
1519将文件设置为收藏文件,使用callback方式返回异步结果。
1520
1521**需要权限**:ohos.permission.READ_MEDIA, ohos.permission.WRITE_MEDIA
1522
1523**系统能力**:SystemCapability.Multimedia.MediaLibrary.Core
1524
1525**参数:**
1526
1527| 参数名        | 类型                        | 必填   | 说明                                 |
1528| ---------- | ------------------------- | ---- | ---------------------------------- |
1529| isFavorite | boolean                   | 是    | 是否设置为收藏文件, true:设置为收藏文件,false:取消收藏 |
1530| callback   | AsyncCallback&lt;void&gt; | 是    | 回调返回空                              |
1531
1532**示例:**
1533
1534```js
1535async function example() {
1536    let fileKeyObj = mediaLibrary.FileKey;
1537    let imageType = mediaLibrary.MediaType.IMAGE;
1538    let getImageOp = {
1539        selections: fileKeyObj.MEDIA_TYPE + '= ?',
1540        selectionArgs: [imageType.toString()],
1541        order: fileKeyObj.DATE_ADDED + ' DESC',
1542    };
1543    const fetchFileResult = await media.getFileAssets(getImageOp);
1544    const asset = await fetchFileResult.getFirstObject();
1545    asset.favorite(true,(error) => {
1546        if (error) {
1547            console.error('mediaLibrary favorite failed with error: ' + error);
1548        } else {
1549            console.info('mediaLibrary favorite Successful');
1550        }
1551    });
1552    fetchFileResult.close();
1553}
1554```
1555
1556### favorite<sup>8+</sup>
1557
1558favorite(isFavorite: boolean): Promise&lt;void&gt;
1559
1560将文件设置为收藏文件,使用promise方式返回异步结果。
1561
1562**需要权限**:ohos.permission.READ_MEDIA, ohos.permission.WRITE_MEDIA
1563
1564**系统能力**:SystemCapability.Multimedia.MediaLibrary.Core
1565
1566**参数:**
1567
1568| 参数名        | 类型      | 必填   | 说明                                 |
1569| ---------- | ------- | ---- | ---------------------------------- |
1570| isFavorite | boolean | 是    | 是否设置为收藏文件, true:设置为收藏文件,false:取消收藏 |
1571
1572**返回值:**
1573
1574| 类型                  | 说明         |
1575| ------------------- | ---------- |
1576| Promise&lt;void&gt; | Promise返回空 |
1577
1578**示例:**
1579
1580```js
1581async function example() {
1582    let fileKeyObj = mediaLibrary.FileKey;
1583    let imageType = mediaLibrary.MediaType.IMAGE;
1584    let getImageOp = {
1585        selections: fileKeyObj.MEDIA_TYPE + '= ?',
1586        selectionArgs: [imageType.toString()],
1587        order: fileKeyObj.DATE_ADDED + ' DESC',
1588    };
1589    const fetchFileResult = await media.getFileAssets(getImageOp);
1590    const asset = await fetchFileResult.getFirstObject();
1591    asset.favorite(true).then(() => {
1592        console.info('mediaLibrary favorite Successful');
1593    }).catch((error) => {
1594        console.error('mediaLibrary favorite failed with error: ' + error);
1595    });
1596    fetchFileResult.close();
1597}
1598```
1599
1600### isFavorite<sup>8+</sup>
1601
1602isFavorite(callback: AsyncCallback&lt;boolean&gt;): void
1603
1604判断该文件是否为收藏文件,使用callback方式返回异步结果。
1605
1606**需要权限**:ohos.permission.READ_MEDIA
1607
1608**系统能力**:SystemCapability.Multimedia.MediaLibrary.Core
1609
1610**参数:**
1611
1612| 参数名      | 类型                           | 必填   | 说明          |
1613| -------- | ---------------------------- | ---- | ----------- |
1614| callback | AsyncCallback&lt;boolean&gt; | 是    | 回调表示是否为收藏文件 |
1615
1616**示例:**
1617
1618```js
1619async function example() {
1620    let fileKeyObj = mediaLibrary.FileKey;
1621    let imageType = mediaLibrary.MediaType.IMAGE;
1622    let getImageOp = {
1623        selections: fileKeyObj.MEDIA_TYPE + '= ?',
1624        selectionArgs: [imageType.toString()],
1625        order: fileKeyObj.DATE_ADDED + ' DESC',
1626    };
1627    const fetchFileResult = await media.getFileAssets(getImageOp);
1628    const asset = await fetchFileResult.getFirstObject();
1629    asset.isFavorite((error, isFavorite) => {
1630        if (error) {
1631            console.error('mediaLibrary favoriisFavoritete failed with error: ' + error);
1632        } else {
1633            console.info('mediaLibrary isFavorite Successful, isFavorite result: ' + isFavorite);
1634        }
1635    });
1636    fetchFileResult.close();
1637}
1638```
1639
1640### isFavorite<sup>8+</sup>
1641
1642isFavorite():Promise&lt;boolean&gt;
1643
1644判断该文件是否为收藏文件,使用promise方式返回异步结果。
1645
1646**需要权限**:ohos.permission.READ_MEDIA
1647
1648**系统能力**:SystemCapability.Multimedia.MediaLibrary.Core
1649
1650**返回值:**
1651
1652| 类型                     | 说明                 |
1653| ---------------------- | ------------------ |
1654| Promise&lt;boolean&gt; | Promise回调表示是否是收藏文件 |
1655
1656**示例:**
1657
1658```js
1659async function example() {
1660    let fileKeyObj = mediaLibrary.FileKey;
1661    let imageType = mediaLibrary.MediaType.IMAGE;
1662    let getImageOp = {
1663        selections: fileKeyObj.MEDIA_TYPE + '= ?',
1664        selectionArgs: [imageType.toString()],
1665        order: fileKeyObj.DATE_ADDED + ' DESC',
1666    };
1667    const fetchFileResult = await media.getFileAssets(getImageOp);
1668    const asset = await fetchFileResult.getFirstObject();
1669    asset.isFavorite().then((isFavorite) => {
1670        console.info('mediaLibrary isFavorite Successful, isFavorite result: ' + isFavorite);
1671    }).catch((error) => {
1672        console.error('mediaLibrary favoriisFavoritete failed with error: ' + error);
1673    });
1674    fetchFileResult.close();
1675}
1676```
1677
1678### trash<sup>8+</sup>
1679
1680trash(isTrash: boolean, callback: AsyncCallback&lt;void&gt;): void
1681
1682当文件被定位时,将文件放到垃圾文件夹,使用callback方式返回异步结果。
1683
1684放入垃圾文件夹的文件不会被真正删除,可以通过isTrash = false参数恢复成正常文件。
1685
1686**需要权限**:ohos.permission.READ_MEDIA, ohos.permission.WRITE_MEDIA
1687
1688**系统能力**:SystemCapability.Multimedia.MediaLibrary.Core
1689
1690**参数:**
1691
1692| 参数名      | 类型                        | 必填   | 说明        |
1693| -------- | ------------------------- | ---- | --------- |
1694| isTrash  | boolean                   | 是    | 是否设置为垃圾文件 |
1695| callback | AsyncCallback&lt;void&gt; | 是    | 回调返回空     |
1696
1697**示例:**
1698
1699```js
1700async function example() {
1701    let fileKeyObj = mediaLibrary.FileKey;
1702    let imageType = mediaLibrary.MediaType.IMAGE;
1703    let getImageOp = {
1704        selections: fileKeyObj.MEDIA_TYPE + '= ?',
1705        selectionArgs: [imageType.toString()],
1706        order: fileKeyObj.DATE_ADDED + ' DESC',
1707    };
1708    const fetchFileResult = await media.getFileAssets(getImageOp);
1709    const asset = await fetchFileResult.getFirstObject();
1710    asset.trash(true, (error) => {
1711        if (error) {
1712            console.error('mediaLibrary trash failed with error: ' + error);
1713        } else {
1714            console.info('mediaLibrary trash Successful');
1715        }
1716    });
1717    fetchFileResult.close();
1718}
1719```
1720
1721### trash<sup>8+</sup>
1722
1723trash(isTrash: boolean): Promise&lt;void&gt;
1724
1725当文件被定位时,将文件放到垃圾文件夹,使用promise方式返回异步结果。
1726
1727放入垃圾文件夹的文件不会被真正删除,可以通过isTrash = false参数恢复成正常文件。
1728
1729**需要权限**:ohos.permission.READ_MEDIA, ohos.permission.WRITE_MEDIA
1730
1731**系统能力**:SystemCapability.Multimedia.MediaLibrary.Core
1732
1733**参数:**
1734
1735| 参数名     | 类型      | 必填   | 说明        |
1736| ------- | ------- | ---- | --------- |
1737| isTrash | boolean | 是    | 是否设置为垃圾文件 |
1738
1739**返回值:**
1740
1741| 类型                  | 说明         |
1742| ------------------- | ---------- |
1743| Promise&lt;void&gt; | Promise返回空 |
1744
1745**示例:**
1746
1747```js
1748async function example() {
1749    let fileKeyObj = mediaLibrary.FileKey;
1750    let imageType = mediaLibrary.MediaType.IMAGE;
1751    let getImageOp = {
1752        selections: fileKeyObj.MEDIA_TYPE + '= ?',
1753        selectionArgs: [imageType.toString()],
1754        order: fileKeyObj.DATE_ADDED + ' DESC',
1755    };
1756    const fetchFileResult = await media.getFileAssets(getImageOp);
1757    const asset = await fetchFileResult.getFirstObject();
1758    asset.trash(true).then(() => {
1759        console.info('trash successfully');
1760    }).catch((error) => {
1761        console.error('trash failed with error: ' + error);
1762    });
1763    fetchFileResult.close();
1764}
1765```
1766
1767### isTrash<sup>8+</sup>
1768
1769isTrash(callback: AsyncCallback&lt;boolean&gt;): void
1770
1771当文件被定位,判断文件是否为垃圾文件,使用callback方式返回异步结果。
1772
1773**需要权限**:ohos.permission.READ_MEDIA
1774
1775**系统能力**:SystemCapability.Multimedia.MediaLibrary.Core
1776
1777**参数:**
1778
1779| 参数名      | 类型                           | 必填   | 说明              |
1780| -------- | ---------------------------- | ---- | --------------- |
1781| callback | AsyncCallback&lt;boolean&gt; | 是    | 回调返回表示文件是否为垃圾文件 |
1782
1783**示例:**
1784
1785```js
1786async function example() {
1787    let fileKeyObj = mediaLibrary.FileKey;
1788    let imageType = mediaLibrary.MediaType.IMAGE;
1789    let getImageOp = {
1790        selections: fileKeyObj.MEDIA_TYPE + '= ?',
1791        selectionArgs: [imageType.toString()],
1792        order: fileKeyObj.DATE_ADDED + ' DESC',
1793    };
1794    const fetchFileResult = await media.getFileAssets(getImageOp);
1795    const asset = await fetchFileResult.getFirstObject();
1796    asset.isTrash((error, isTrash) => {
1797        if (error) {
1798            console.error('Failed to get trash state failed with error: ' + error);
1799            return;
1800        }
1801        console.info('Get trash state successfully, isTrash result: ' + isTrash);
1802    });
1803    fetchFileResult.close();
1804}
1805```
1806
1807### isTrash<sup>8+</sup>
1808
1809isTrash():Promise&lt;boolean&gt;
1810
1811当文件被定位,判断文件是否为垃圾文件,使用promise方式返回异步结果。
1812
1813**需要权限**:ohos.permission.READ_MEDIA
1814
1815**系统能力**:SystemCapability.Multimedia.MediaLibrary.Core
1816
1817**返回值:**
1818
1819| 类型                  | 说明                   |
1820| ------------------- | -------------------- |
1821| Promise&lt;void&gt; | Promise回调表示文件是否为垃圾文件 |
1822
1823**示例:**
1824
1825```js
1826async function example() {
1827    let fileKeyObj = mediaLibrary.FileKey;
1828    let imageType = mediaLibrary.MediaType.IMAGE;
1829    let getImageOp = {
1830        selections: fileKeyObj.MEDIA_TYPE + '= ?',
1831        selectionArgs: [imageType.toString()],
1832        order: fileKeyObj.DATE_ADDED + ' DESC',
1833    };
1834    const fetchFileResult = await media.getFileAssets(getImageOp);
1835    const asset = await fetchFileResult.getFirstObject();
1836    asset.isTrash().then((isTrash) => {
1837        console.info('isTrash result: ' + isTrash);
1838    }).catch((error) => {
1839        console.error('isTrash failed with error: ' + error);
1840    });
1841    fetchFileResult.close();
1842}
1843```
1844
1845## FetchFileResult<sup>7+</sup>
1846
1847文件检索结果集。
1848
1849### getCount<sup>7+</sup>
1850
1851getCount(): number
1852
1853获取文件检索结果中的文件总数。
1854
1855**系统能力**:SystemCapability.Multimedia.MediaLibrary.Core
1856
1857**返回值**:
1858
1859| 类型     | 说明       |
1860| ------ | -------- |
1861| number | 检索到的文件总数 |
1862
1863**示例**:
1864
1865```js
1866async function example() {
1867    let fileKeyObj = mediaLibrary.FileKey;
1868    let fileType = mediaLibrary.MediaType.FILE;
1869    let getFileCountOneOp = {
1870        selections: fileKeyObj.MEDIA_TYPE + '= ?',
1871        selectionArgs: [fileType.toString()],
1872        order: fileKeyObj.DATE_ADDED + ' DESC',
1873    };
1874    let fetchFileResult = await media.getFileAssets(getFileCountOneOp);
1875    const fetchCount = fetchFileResult.getCount();
1876    console.info('fetchCount result: ' + fetchCount);
1877    fetchFileResult.close();
1878}
1879```
1880
1881### isAfterLast<sup>7+</sup>
1882
1883isAfterLast(): boolean
1884
1885检查结果集是否指向最后一行。
1886
1887**系统能力**:SystemCapability.Multimedia.MediaLibrary.Core
1888
1889**返回值**:
1890
1891| 类型      | 说明                                 |
1892| ------- | ---------------------------------- |
1893| boolean | 当读到最后一条记录后,后续没有记录返回true,否则返回false。 |
1894
1895**示例**:
1896
1897```js
1898async function example() {
1899    let fileKeyObj = mediaLibrary.FileKey;
1900    let imageType = mediaLibrary.MediaType.IMAGE;
1901    let getImageOp = {
1902        selections: fileKeyObj.MEDIA_TYPE + '= ?',
1903        selectionArgs: [imageType.toString()],
1904        order: fileKeyObj.DATE_ADDED + ' DESC',
1905    };
1906    let fetchFileResult = await media.getFileAssets(getImageOp);
1907    const fetchCount = fetchFileResult.getCount();
1908    console.info('mediaLibrary fetchFileResult.getCount, count:' + fetchCount);
1909    let fileAsset = await fetchFileResult.getFirstObject();
1910    for (var i = 1; i < fetchCount; i++) {
1911        fileAsset = await fetchFileResult.getNextObject();
1912        if(i == fetchCount - 1) {
1913            var result = fetchFileResult.isAfterLast();
1914            console.info('mediaLibrary fileAsset isAfterLast result: ' + result);
1915            fetchFileResult.close();
1916        }
1917    }
1918}
1919```
1920
1921### close<sup>7+</sup>
1922
1923close(): void
1924
1925释放 FetchFileResult 实例并使其失效。无法调用其他方法。
1926
1927**系统能力**:SystemCapability.Multimedia.MediaLibrary.Core
1928
1929**示例**:
1930
1931```js
1932async function example() {
1933    let fileKeyObj = mediaLibrary.FileKey;
1934    let imageType = mediaLibrary.MediaType.IMAGE;
1935    let getImageOp = {
1936        selections: fileKeyObj.MEDIA_TYPE + '= ?',
1937        selectionArgs: [imageType.toString()],
1938        order: fileKeyObj.DATE_ADDED + ' DESC',
1939    };
1940    let fetchFileResult = await media.getFileAssets(getImageOp);
1941    fetchFileResult.close();
1942}
1943```
1944
1945### getFirstObject<sup>7+</sup>
1946
1947getFirstObject(callback: AsyncCallback&lt;FileAsset&gt;): void
1948
1949获取文件检索结果中的第一个文件资产。此方法使用回调返回FileAsset。
1950
1951**系统能力**:SystemCapability.Multimedia.MediaLibrary.Core
1952
1953**参数**:
1954
1955| 参数名   | 类型                                          | 必填 | 说明                                        |
1956| -------- | --------------------------------------------- | ---- | ------------------------------------------- |
1957| callback | AsyncCallback&lt;[FileAsset](#fileasset7)&gt; | 是   | 异步获取结果集中第一个FileAsset完成后的回调 |
1958
1959**示例**:
1960
1961```js
1962async function example() {
1963    let fileKeyObj = mediaLibrary.FileKey;
1964    let imageType = mediaLibrary.MediaType.IMAGE;
1965    let getImageOp = {
1966        selections: fileKeyObj.MEDIA_TYPE + '= ?',
1967        selectionArgs: [imageType.toString()],
1968        order: fileKeyObj.DATE_ADDED + ' DESC',
1969    };
1970    let fetchFileResult = await media.getFileAssets(getImageOp);
1971    fetchFileResult.getFirstObject((error, fileAsset) => {
1972        if (error) {
1973            console.error('fetchFileResult getFirstObject failed with error: ' + error);
1974            return;
1975        }
1976        console.info('getFirstObject successfully, displayName : ' + fileAsset.displayName);
1977        fetchFileResult.close();
1978    })
1979}
1980```
1981
1982### getFirstObject<sup>7+</sup>
1983
1984getFirstObject(): Promise&lt;FileAsset&gt;
1985
1986获取文件检索结果中的第一个文件资产。此方法使用Promise方式返回FileAsset。
1987
1988**系统能力**:SystemCapability.Multimedia.MediaLibrary.Core
1989
1990**返回值**:
1991
1992| 类型                                    | 说明                       |
1993| --------------------------------------- | -------------------------- |
1994| Promise&lt;[FileAsset](#fileasset7)&gt; | Promise方式返回FileAsset。 |
1995
1996**示例**:
1997
1998```js
1999async function example() {
2000    let fileKeyObj = mediaLibrary.FileKey;
2001    let imageType = mediaLibrary.MediaType.IMAGE;
2002    let getImageOp = {
2003        selections: fileKeyObj.MEDIA_TYPE + '= ?',
2004        selectionArgs: [imageType.toString()],
2005        order: fileKeyObj.DATE_ADDED + ' DESC',
2006    };
2007    let fetchFileResult = await media.getFileAssets(getImageOp);
2008    fetchFileResult.getFirstObject().then((fileAsset) => {
2009        console.info('getFirstObject successfully, displayName: ' + fileAsset.displayName);
2010        fetchFileResult.close();
2011    }).catch((error) => {
2012        console.error('getFirstObject failed with error: ' + error);
2013    });
2014}
2015```
2016
2017### getNextObject<sup>7+</sup>
2018
2019 getNextObject(callback: AsyncCallback&lt;FileAsset&gt;): void
2020
2021获取文件检索结果中的下一个文件资产,此方法使用callback形式返回结果。
2022
2023> **说明**: 在使用前需要先使用[getFirstObject](#getfirstobject7)接口获取第一个文件资产,然后使用[isAfterLast](#isafterlast7)确认文件检索集当前不是指向最后一个时方可使用此接口。
2024
2025**系统能力**:SystemCapability.Multimedia.MediaLibrary.Core
2026
2027**参数**:
2028
2029| 参数名    | 类型                                          | 必填 | 说明                                      |
2030| --------- | --------------------------------------------- | ---- | ----------------------------------------- |
2031| callbacke | AsyncCallback&lt;[FileAsset](#fileasset7)&gt; | 是   | 异步返回结果集中下一个FileAsset之后的回调 |
2032
2033**示例**:
2034
2035```js
2036async function example() {
2037    let fileKeyObj = mediaLibrary.FileKey;
2038    let imageType = mediaLibrary.MediaType.IMAGE;
2039    let getImageOp = {
2040        selections: fileKeyObj.MEDIA_TYPE + '= ?',
2041        selectionArgs: [imageType.toString()],
2042        order: fileKeyObj.DATE_ADDED + ' DESC',
2043    };
2044    let fetchFileResult = await media.getFileAssets(getImageOp);
2045    let fileAsset = await fetchFileResult.getFirstObject();
2046    if (!fileAsset.isAfterLast) {
2047        fetchFileResult.getNextObject((error, fileAsset) => {
2048            if (error) {
2049                console.error('fetchFileResult getNextObject failed with error: ' + error);
2050                return;
2051            }
2052            console.log('fetchFileResult getNextObject successfully, displayName: ' + fileAsset.displayName);
2053            fetchFileResult.close();
2054        })
2055    }
2056}
2057
2058```
2059
2060### getNextObject<sup>7+</sup>
2061
2062 getNextObject(): Promise&lt;FileAsset&gt;
2063
2064获取文件检索结果中的下一个文件资产。此方法使用promise方式来异步返回FileAsset。
2065
2066> **说明**: 在使用前需要先使用[getFirstObject](#getfirstobject7)接口获取第一个文件资产,然后使用[isAfterLast](#isafterlast7)确认文件检索集当前不是指向最后一个时方可使用此接口。
2067
2068**系统能力**:SystemCapability.Multimedia.MediaLibrary.Core
2069
2070**返回值**:
2071
2072| 类型                                    | 说明              |
2073| --------------------------------------- | ----------------- |
2074| Promise&lt;[FileAsset](#fileasset7)&gt; | 返回FileAsset对象 |
2075
2076**示例**:
2077
2078```js
2079async function example() {
2080    let fileKeyObj = mediaLibrary.FileKey;
2081    let imageType = mediaLibrary.MediaType.IMAGE;
2082    let getImageOp = {
2083        selections: fileKeyObj.MEDIA_TYPE + '= ?',
2084        selectionArgs: [imageType.toString()],
2085        order: fileKeyObj.DATE_ADDED + ' DESC',
2086    };
2087    let fetchFileResult = await media.getFileAssets(getImageOp);
2088    let fileAsset = await fetchFileResult.getFirstObject();
2089    if (!fileAsset.isAfterLast) {
2090        fetchFileResult.getNextObject().then((fileAsset) => {
2091            console.info('fetchFileResult getNextObject successfully, displayName: ' + fileAsset.displayName);
2092            fetchFileResult.close();
2093        }).catch((error) => {
2094            console.error('fetchFileResult getNextObject failed with error: ' + error);
2095        })
2096    }
2097}
2098```
2099
2100### getLastObject<sup>7+</sup>
2101
2102getLastObject(callback: AsyncCallback&lt;FileAsset&gt;): void
2103
2104获取文件检索结果中的最后一个文件资产。此方法使用callback回调来返回FileAsset。
2105
2106**系统能力**:SystemCapability.Multimedia.MediaLibrary.Core
2107
2108**参数**:
2109
2110| 参数名   | 类型                                          | 必填 | 说明                        |
2111| -------- | --------------------------------------------- | ---- | --------------------------- |
2112| callback | AsyncCallback&lt;[FileAsset](#fileasset7)&gt; | 是   | 异步返回FileAsset之后的回调 |
2113
2114**示例**:
2115
2116```js
2117async function example() {
2118    let fileKeyObj = mediaLibrary.FileKey;
2119    let imageType = mediaLibrary.MediaType.IMAGE;
2120    let getImageOp = {
2121        selections: fileKeyObj.MEDIA_TYPE + '= ?',
2122        selectionArgs: [imageType.toString()],
2123        order: fileKeyObj.DATE_ADDED + ' DESC',
2124    };
2125    let fetchFileResult = await media.getFileAssets(getImageOp);
2126    fetchFileResult.getLastObject((error, fileAsset) => {
2127        if (error) {
2128            console.error('getLastObject failed with error: ' + error);
2129            return;
2130        }
2131        console.info('getLastObject successfully, displayName: ' + fileAsset.displayName);
2132        fetchFileResult.close();
2133    })
2134}
2135```
2136
2137### getLastObject<sup>7+</sup>
2138
2139getLastObject(): Promise&lt;FileAsset&gt;
2140
2141获取文件检索结果中的最后一个文件资产。此方法使用Promise方式来返回FileAsset。
2142
2143**系统能力**:SystemCapability.Multimedia.MediaLibrary.Core
2144
2145**返回值**:
2146
2147| 类型                                    | 说明              |
2148| --------------------------------------- | ----------------- |
2149| Promise&lt;[FileAsset](#fileasset7)&gt; | 返回FileAsset对象 |
2150
2151**示例**:
2152
2153```js
2154async function example() {
2155    let fileKeyObj = mediaLibrary.FileKey;
2156    let imageType = mediaLibrary.MediaType.IMAGE;
2157    let getImageOp = {
2158        selections: fileKeyObj.MEDIA_TYPE + '= ?',
2159        selectionArgs: [imageType.toString()],
2160        order: fileKeyObj.DATE_ADDED + ' DESC',
2161    };
2162    let fetchFileResult = await media.getFileAssets(getImageOp);
2163    fetchFileResult.getLastObject().then((fileAsset) => {
2164        console.info('getLastObject successfully, displayName: ' + fileAsset.displayName);
2165        fetchFileResult.close();
2166    }).catch((error) => {
2167        console.error('getLastObject failed with error: ' + error);
2168    });
2169}
2170```
2171
2172### getPositionObject<sup>7+</sup>
2173
2174getPositionObject(index: number, callback: AsyncCallback&lt;FileAsset&gt;): void
2175
2176获取文件检索结果中具有指定索引的文件资产。此方法使用回调来返回FileAsset。
2177
2178**系统能力**:SystemCapability.Multimedia.MediaLibrary.Core
2179
2180**参数**:
2181
2182| 参数名       | 类型                                       | 必填   | 说明                 |
2183| -------- | ---------------------------------------- | ---- | ------------------ |
2184| index    | number                                   | 是    | 要获取的文件的索引,从0开始(注意该值要小于文件检索集的count值)     |
2185| callback | AsyncCallback&lt;[FileAsset](#fileasset7)&gt; | 是    | 异步返回FileAsset之后的回调 |
2186
2187**示例**:
2188
2189```js
2190async function example() {
2191    let fileKeyObj = mediaLibrary.FileKey;
2192    let imageType = mediaLibrary.MediaType.IMAGE;
2193    let getImageOp = {
2194        selections: fileKeyObj.MEDIA_TYPE + '= ?',
2195        selectionArgs: [imageType.toString()],
2196        order: fileKeyObj.DATE_ADDED + ' DESC',
2197    };
2198    let fetchFileResult = await media.getFileAssets(getImageOp);
2199    fetchFileResult.getPositionObject(0, (error, fileAsset) => {
2200        if (error) {
2201            console.error('getPositionObject failed with error: ' + error);
2202            return;
2203        }
2204        console.info('getPositionObject successfully, displayName: ' + fileAsset.displayName);
2205        fetchFileResult.close();
2206    })
2207}
2208```
2209
2210### getPositionObject<sup>7+</sup>
2211
2212getPositionObject(index: number): Promise&lt;FileAsset&gt;
2213
2214获取文件检索结果中具有指定索引的文件资产。此方法使用Promise形式返回文件Asset。
2215
2216**系统能力**:SystemCapability.Multimedia.MediaLibrary.Core
2217
2218**参数**:
2219
2220| 参数名    | 类型     | 必填   | 说明             |
2221| ----- | ------ | ---- | -------------- |
2222| index | number | 是    | 要获取的文件的索引,从0开始(注意该值要小于文件检索集的count值) |
2223
2224**返回值**:
2225
2226| 类型                                    | 说明              |
2227| --------------------------------------- | ----------------- |
2228| Promise&lt;[FileAsset](#fileasset7)&gt; | 返回FileAsset对象 |
2229
2230**示例**:
2231
2232```js
2233async function example() {
2234    let fileKeyObj = mediaLibrary.FileKey;
2235    let imageType = mediaLibrary.MediaType.IMAGE;
2236    let getImageOp = {
2237        selections: fileKeyObj.MEDIA_TYPE + '= ?',
2238        selectionArgs: [imageType.toString()],
2239        order: fileKeyObj.DATE_ADDED + ' DESC',
2240    };
2241    let fetchFileResult = await media.getFileAssets(getImageOp);
2242    fetchFileResult.getPositionObject(0).then((fileAsset) => {
2243        console.info('getPositionObject successfully, displayName: ' + fileAsset.displayName);
2244        fetchFileResult.close();
2245    }).catch((error) => {
2246        console.error('getPositionObject failed with error: ' + error);
2247    });
2248}
2249```
2250
2251### getAllObject<sup>7+</sup>
2252
2253getAllObject(callback: AsyncCallback&lt;Array&lt;FileAsset&gt;&gt;): void
2254
2255获取文件检索结果中的所有文件资产。此方法使用Callback回调来返回FileAsset结果集。
2256
2257**系统能力**:SystemCapability.Multimedia.MediaLibrary.Core
2258
2259**参数**:
2260
2261| 参数名       | 类型                                       | 必填   | 说明                   |
2262| -------- | ---------------------------------------- | ---- | -------------------- |
2263| callback | AsyncCallback&lt;Array&lt;[FileAsset](#fileasset7)&gt;&gt; | 是    | 异步返回FileAsset列表之后的回调 |
2264
2265**示例**:
2266
2267```js
2268async function example() {
2269    let fileKeyObj = mediaLibrary.FileKey;
2270    let imageType = mediaLibrary.MediaType.IMAGE;
2271    let getImageOp = {
2272        selections: fileKeyObj.MEDIA_TYPE + '= ?',
2273        selectionArgs: [imageType.toString()],
2274        order: fileKeyObj.DATE_ADDED + ' DESC',
2275    };
2276    let fetchFileResult = await media.getFileAssets(getImageOp);
2277    fetchFileResult.getAllObject((error, fileAssetList) => {
2278        if (error) {
2279           console.error('getAllObject failed with error: ' + error);
2280           return;
2281        }
2282        for (let i = 0; i < fetchFileResult.getCount(); i++) {
2283            console.info('getAllObject fileAssetList ' + i + ' displayName: ' + fileAssetList[i].displayName);
2284        }
2285        fetchFileResult.close();
2286    })
2287}
2288```
2289
2290### getAllObject<sup>7+</sup>
2291
2292getAllObject(): Promise&lt;Array&lt;FileAsset&gt;&gt;
2293
2294获取文件检索结果中的所有文件资产。此方法使用Promise来返回FileAsset结果集。
2295
2296**系统能力**:SystemCapability.Multimedia.MediaLibrary.Core
2297
2298**返回值**:
2299
2300| 类型                                     | 说明                  |
2301| ---------------------------------------- | --------------------- |
2302| Promise&lt;Array&lt;[FileAsset](#fileasset7)&gt;&gt; | 返回FileAsset对象列表 |
2303
2304**示例**:
2305
2306```js
2307async function example() {
2308    let fileKeyObj = mediaLibrary.FileKey;
2309    let imageType = mediaLibrary.MediaType.IMAGE;
2310    let getImageOp = {
2311        selections: fileKeyObj.MEDIA_TYPE + '= ?',
2312        selectionArgs: [imageType.toString()],
2313        order: fileKeyObj.DATE_ADDED + ' DESC',
2314    };
2315    let fetchFileResult = await media.getFileAssets(getImageOp);
2316    fetchFileResult.getAllObject().then((fileAssetList) => {
2317        for (let i = 0; i < fetchFileResult.getCount(); i++) {
2318            console.info('getAllObject fileAssetList ' + i + ' displayName: ' + fileAssetList[i].displayName);
2319        }
2320        fetchFileResult.close();
2321    }).catch((error) => {
2322        console.error('getAllObject failed with error: ' + error);
2323    });
2324}
2325```
2326
2327## Album<sup>7+</sup>
2328
2329实体相册
2330
2331### 属性
2332
2333**系统能力:** 以下各项对应的系统能力均为SystemCapability.Multimedia.MediaLibrary.Core
2334
2335| 名称           | 类型    | 可读   | 可写   | 说明      |
2336| ------------ | ------ | ---- | ---- | ------- |
2337| albumId | number | 是    | 否    | 相册编号    |
2338| albumName | string | 是    | 是    | 相册名称    |
2339| albumUri<sup>8+</sup> | string | 是    | 否    | 相册Uri   |
2340| dateModified | number | 是    | 否    | 修改日期    |
2341| count<sup>8+</sup> | number | 是    | 否    | 相册中文件数量 |
2342| relativePath<sup>8+</sup> | string | 是    | 否    | 相对路径    |
2343| coverUri<sup>8+</sup> | string | 是    | 否    | 封面文件Uri |
2344
2345### commitModify<sup>8+</sup>
2346
2347commitModify(callback: AsyncCallback&lt;void&gt;): void
2348
2349更新相册属性修改到数据库中。
2350
2351**需要权限**:ohos.permission.READ_MEDIA, ohos.permission.WRITE_MEDIA
2352
2353**系统能力**:SystemCapability.Multimedia.MediaLibrary.Core
2354
2355**参数**:
2356
2357| 参数名   | 类型                      | 必填 | 说明       |
2358| -------- | ------------------------- | ---- | ---------- |
2359| callback | AsyncCallback&lt;void&gt; | 是   | 回调返回空 |
2360
2361**示例**:
2362
2363```js
2364async function example() {
2365    let AlbumNoArgsfetchOp = {
2366        selections: '',
2367        selectionArgs: [],
2368    };
2369    const albumList = await media.getAlbums(AlbumNoArgsfetchOp);
2370    const album = albumList[0];
2371    album.albumName = 'hello';
2372    album.commitModify((error) => {
2373        if (error) {
2374            console.error('commitModify failed with error: ' + error);
2375            return;
2376        }
2377        console.info('commitModify successful.');
2378    })
2379}
2380```
2381
2382### commitModify<sup>8+</sup>
2383
2384commitModify(): Promise&lt;void&gt;
2385
2386更新相册属性修改到数据库中。
2387
2388**需要权限**:ohos.permission.READ_MEDIA, ohos.permission.WRITE_MEDIA
2389
2390**系统能力**:SystemCapability.Multimedia.MediaLibrary.Core
2391
2392**返回值**:
2393
2394| 类型                  | 说明           |
2395| ------------------- | ------------ |
2396| Promise&lt;void&gt; | Promise调用返回空 |
2397
2398**示例**:
2399
2400```js
2401async function example() {
2402    let AlbumNoArgsfetchOp = {
2403        selections: '',
2404        selectionArgs: [],
2405    };
2406    const albumList = await media.getAlbums(AlbumNoArgsfetchOp);
2407    const album = albumList[0];
2408    album.albumName = 'hello';
2409    album.commitModify().then(() => {
2410        console.info('commitModify successfully');
2411    }).catch((error) => {
2412        console.error('commitModify failed with error: ' + error);
2413    });
2414}
2415```
2416
2417### getFileAssets<sup>7+</sup>
2418
2419getFileAssets(options: MediaFetchOptions, callback: AsyncCallback&lt;FetchFileResult&gt;): void
2420
2421按照检索条件获取相册中的文件。此方法使用Callback回调来返回文件结果集。
2422
2423**需要权限**:ohos.permission.READ_MEDIA
2424
2425**系统能力**:SystemCapability.Multimedia.MediaLibrary.Core
2426
2427**参数**:
2428
2429| 参数名   | 类型                                                | 必填 | 说明                                |
2430| -------- | --------------------------------------------------- | ---- | ----------------------------------- |
2431| options  | [MediaFetchOptions](#mediafetchoptions7)            | 是   | 媒体检索选项。                      |
2432| callback | AsyncCallback<[FetchFileResult](#fetchfileresult7)> | 是   | 异步返回FetchFileResult之后的回调。 |
2433
2434**示例**:
2435
2436```js
2437async function example() {
2438    let AlbumNoArgsfetchOp = {
2439        selections: '',
2440        selectionArgs: [],
2441    };
2442    let fileNoArgsfetchOp = {
2443        selections: '',
2444        selectionArgs: [],
2445    }
2446    // 获取符合检索要求的相册,返回相册列表
2447    const albumList = await media.getAlbums(AlbumNoArgsfetchOp);
2448    const album = albumList[0];
2449    // 取到相册列表中的一个相册,获取此相册中所有符合媒体检索选项的媒体资源
2450    album.getFileAssets(fileNoArgsfetchOp, (error, fetchFileResult) => {
2451        if (error) {
2452            console.error('album getFileAssets failed with error: ' + error);
2453            return;
2454        }
2455        let count = fetchFileResult.getCount();
2456        console.info('album getFileAssets successfully, count: ' + count);
2457        fetchFileResult.close();
2458    });
2459}
2460```
2461
2462### getFileAssets<sup>7+</sup>
2463
2464 getFileAssets(options?: MediaFetchOptions): Promise&lt;FetchFileResult&gt;
2465
2466按照检索条件获取相册中的文件。此方法使用异步Promise来返回文件结果集。
2467
2468**需要权限**:ohos.permission.READ_MEDIA
2469
2470**系统能力**:SystemCapability.Multimedia.MediaLibrary.Core
2471
2472**参数**:
2473
2474| 参数名  | 类型                                     | 必填 | 说明           |
2475| ------- | ---------------------------------------- | ---- | -------------- |
2476| options | [MediaFetchOptions](#mediafetchoptions7) | 否   | 媒体检索选项。 |
2477
2478**返回值**:
2479
2480| 类型                                          | 说明                      |
2481| --------------------------------------------- | ------------------------- |
2482| Promise<[FetchFileResult](#fetchfileresult7)> | 返回FetchFileResult对象。 |
2483
2484**示例**:
2485
2486```js
2487async function example() {
2488    let AlbumNoArgsfetchOp = {
2489        selections: '',
2490        selectionArgs: [],
2491    };
2492    let fileNoArgsfetchOp = {
2493        selections: '',
2494        selectionArgs: [],
2495    };
2496    // 获取符合检索要求的相册,返回相册列表
2497    const albumList = await media.getAlbums(AlbumNoArgsfetchOp);
2498    const album = albumList[0];
2499    // 取到相册列表中的一个相册,获取此相册中所有符合媒体检索选项的媒体资源
2500    album.getFileAssets(fileNoArgsfetchOp).then((fetchFileResult) => {
2501        let count = fetchFileResult.getCount();
2502        console.info('album getFileAssets successfully, count: ' + count);
2503        fetchFileResult.close();
2504    }).catch((error) => {
2505        console.error('album getFileAssets failed with error: ' + error);
2506    });
2507}
2508```
2509
2510## PeerInfo<sup>8+</sup>
2511
2512注册设备的信息。
2513
2514**系统接口**:此接口为系统接口。
2515
2516**系统能力:** 以下各项对应的系统能力均为SystemCapability.Multimedia.MediaLibrary.DistributedCore
2517
2518| 名称       | 类型                       | 可读 | 可写 | 说明             |
2519| ---------- | -------------------------- | ---- | ---- | ---------------- |
2520| deviceName | string                     | 是   | 否   | 注册设备的名称   |
2521| networkId  | string                     | 是   | 否   | 注册设备的网络ID |
2522| deviceType | [DeviceType](#devicetype8) | 是   | 否   | 设备类型         |
2523| isOnline   | boolean                    | 是   | 否   | 是否在线         |
2524
2525
2526
2527## MediaType<sup>8+</sup>
2528
2529枚举,媒体类型。
2530
2531**系统能力:** 以下各项对应的系统能力均为SystemCapability.Multimedia.MediaLibrary.Core
2532
2533| 名称  |  值 |  说明 |
2534| ----- |  ---- | ---- |
2535| FILE  |  0 | 文件 |
2536| IMAGE |  1 | 图片 |
2537| VIDEO |  2 | 视频 |
2538| AUDIO |  3 | 音频 |
2539
2540## FileKey<sup>8+</sup>
2541
2542枚举,文件关键信息。
2543
2544> **说明:**
2545> bucket_id字段在文件重命名或移动后可能会发生变化,开发者使用前需要重新获取。
2546
2547**系统能力:** 以下各项对应的系统能力均为SystemCapability.Multimedia.MediaLibrary.Core
2548
2549| 名称          | 值              | 说明                                                       |
2550| ------------- | ------------------- | ---------------------------------------------------------- |
2551| ID            | 'file_id'             | 文件编号                                                   |
2552| RELATIVE_PATH | 'relative_path'       | 相对公共目录路径                                           |
2553| DISPLAY_NAME  | 'display_name'        | 显示名字                                                   |
2554| PARENT        | 'parent'              | 父目录id                                                   |
2555| MIME_TYPE     | 'mime_type'           | 文件扩展属性(如:image/*、video/*、file/*)                                             |
2556| MEDIA_TYPE    | 'media_type'          | 媒体类型                                                   |
2557| SIZE          | 'size'                | 文件大小(单位:字节)                                     |
2558| DATE_ADDED    | 'date_added'          | 添加日期(添加文件时间到1970年1月1日的秒数值)             |
2559| DATE_MODIFIED | 'date_modified'       | 修改日期(修改文件时间到1970年1月1日的秒数值,修改文件名不会改变此值,当文件内容发生修改时才会更新) |
2560| DATE_TAKEN    | 'date_taken'          | 拍摄日期(文件拍照时间到1970年1月1日的秒数值)             |
2561| TITLE         | 'title'               | 文件标题                                                   |
2562| ARTIST        | 'artist'              | 作者                                                       |
2563| AUDIOALBUM    | 'audio_album'         | 专辑                                                       |
2564| DURATION      | 'duration'            | 持续时间(单位:毫秒)                                       |
2565| WIDTH         | 'width'               | 图片宽度(单位:像素)                                     |
2566| HEIGHT        | 'height'              | 图片高度(单位:像素)                                     |
2567| ORIENTATION   | 'orientation'         | 图片显示方向,即顺时针旋转角度,如0,90,180。(单位:度) |
2568| ALBUM_ID      | 'bucket_id'           | 文件所归属的相册编号                                       |
2569| ALBUM_NAME    | 'bucket_display_name' | 文件所归属相册名称                                         |
2570
2571## DirectoryType<sup>8+</sup>
2572
2573枚举,目录类型。
2574
2575**系统能力:** 以下各项对应的系统能力均为SystemCapability.Multimedia.MediaLibrary.Core
2576
2577| 名称          | 值 |  说明               |
2578| ------------- | --- | ------------------ |
2579| DIR_CAMERA    |  0 | 表示Camera文件路径 |
2580| DIR_VIDEO     |  1 |  表示视频路径       |
2581| DIR_IMAGE     |  2 | 表示图片路径       |
2582| DIR_AUDIO     |  3 | 表示音频路径       |
2583| DIR_DOCUMENTS |  4 | 表示文档路径       |
2584| DIR_DOWNLOAD  |  5 |  表示下载路径       |
2585
2586## DeviceType<sup>8+</sup>
2587
2588枚举,设备类型。
2589
2590**系统接口**:此接口为系统接口。
2591
2592**系统能力:** 以下各项对应的系统能力均为SystemCapability.Multimedia.MediaLibrary.DistributedCore
2593
2594| 名称         |  值 | 说明       |
2595| ------------ | --- | ---------- |
2596| TYPE_UNKNOWN |  0 | 未识别设备 |
2597| TYPE_LAPTOP  |  1 | 笔记本电脑 |
2598| TYPE_PHONE   |  2 | 手机       |
2599| TYPE_TABLET  |  3 | 平板电脑   |
2600| TYPE_WATCH   |  4 | 智能手表   |
2601| TYPE_CAR     |  5 | 车载设备   |
2602| TYPE_TV      |  6 | 电视设备   |
2603
2604## MediaFetchOptions<sup>7+</sup>
2605
2606检索条件。
2607
2608**系统能力:** 以下各项对应的系统能力均为SystemCapability.Multimedia.MediaLibrary.Core
2609
2610| 名称                    | 类型                | 可读 | 可写 | 说明                                                         |
2611| ----------------------- | ------------------- | ---- | ---- | ------------------------------------------------------------ |
2612| selections              | string              | 是   | 是   | 检索条件,使用[FileKey](#filekey8)中的枚举值作为检索条件的列名。示例:<br/>selections: mediaLibrary.FileKey.MEDIA_TYPE + '= ? OR ' + mediaLibrary.FileKey.MEDIA_TYPE + '= ?', |
2613| selectionArgs           | Array&lt;string&gt; | 是   | 是   | 检索条件的值,对应selections中检索条件列的值。<br/>示例:<br/>selectionArgs: [mediaLibrary.MediaType.IMAGE.toString(), mediaLibrary.MediaType.VIDEO.toString()], |
2614| order                   | string              | 是   | 是   | 检索结果排序方式,使用[FileKey](#filekey8)中的枚举值作为检索结果排序的列,可以用升序或降序排列。示例:<br/>升序排列:order: mediaLibrary.FileKey.DATE_ADDED + ' ASC'<br/>降序排列:order: mediaLibrary.FileKey.DATE_ADDED + ' DESC' |
2615| uri<sup>8+</sup>        | string              | 是   | 是   | 文件URI                                                      |
2616| networkId<sup>8+</sup>  | string              | 是   | 是   | 注册设备网络ID                                               |
2617| extendArgs<sup>8+</sup> | string              | 是   | 是   | 扩展的检索参数,目前没有扩展检索参数                         |
2618
2619## Size<sup>8+</sup>
2620
2621图片尺寸。
2622
2623**系统能力:**  以下各项对应的系统能力均为SystemCapability.Multimedia.MediaLibrary.Core
2624
2625| 名称     | 类型     | 可读   | 可写   | 说明       |
2626| ------ | ------ | ---- | ---- | -------- |
2627| width  | number | 是    | 是    | 宽(单位:像素) |
2628| height | number | 是    | 是    | 高(单位:像素) |
2629
2630## MediaAssetOption
2631
2632媒体资源选项。
2633
2634**系统能力:** 以下各项对应的系统能力均为SystemCapability.Multimedia.MediaLibrary.Core
2635
2636
2637| 名称         | 类型   | 可读 | 可写 | 说明                                                         |
2638| ------------ | ------ | ---- | ---- | ------------------------------------------------------------ |
2639| src          | string | 是   | 是   | 本地文件应用沙箱路径。                                       |
2640| mimeType     | string | 是   | 是   | 媒体MIME(Multipurpose&nbsp;Internet&nbsp;Mail&nbsp;Extensions)类型。<br/>包括:'image/\*'、'video/\*'、'audio/\*'、 'file\*'。 |
2641| relativePath | string | 是   | 是   | 自定义媒体资源保存位置,例:Pictures/ 不填则保存到默认路径。 <br/> image类型默认路径Pictures/ <br/> video类型默认路径Videos/ <br/> audio类型默认路径Audios/ <br/> file类型默认路径Documents/ 。 |
2642
2643## MediaSelectOption
2644
2645媒体资源类型选项。
2646
2647**系统能力:** 以下各项对应的系统能力均为SystemCapability.Multimedia.MediaLibrary.Core
2648
2649| 名称    | 类型     | 可读 | 可写 | 说明                   |
2650| ----- | ------ | ---- | ---- | -------------------- |
2651| type  | 'image' &#124; 'video' &#124; 'media' | 是    | 是  | 媒体类型,包括:image, video, media,当前仅支持media类型 |
2652| count | number | 是    | 是  | 可以选择媒体数量的最大值,count = 1表示单选,count大于1表示多选。            |
2653
2654