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