js-apis-medialibrary.md 77.1 KB
Newer Older
P
panqiangbiao 已提交
1 2
媒体库管理
==========
P
panqiangbiao 已提交
3 4
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> 该组件从API Version 6开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
P
panqiangbiao 已提交
5

P
panqiangbiao 已提交
6 7 8 9
 导入模块
---------

```
P
panqiangbiao 已提交
10
import mediaLibrary from '@ohos.multimedia.medialibrary';
P
panqiangbiao 已提交
11 12
```

P
panqiangbiao 已提交
13
## mediaLibrary.getMediaLibrary
P
panqiangbiao 已提交
14

P
panqiangbiao 已提交
15
getMediaLibrary(context: Context): MediaLibrary
P
panqiangbiao 已提交
16

P
panqiangbiao 已提交
17
获取媒体库的实例,用于访问和修改用户的个人数据信息。
P
panqiangbiao 已提交
18

P
panqiangbiao 已提交
19
**系统能力**:SystemCapability.Multimedia.MediaLibrary.Core
P
panqiangbiao 已提交
20

P
panqiangbiao 已提交
21
**参数:** 
P
panqiangbiao 已提交
22 23 24

| 参数名  | 类型    | 必填 | 说明                 |
| ------- | ------- | ---- | -------------------- |
P
panqiangbiao 已提交
25
| context | Context | 是 | API7以下接口可不传此参数,API 8以上接口此参数是必填参数,传入Ability实例的context,获取媒体库 |
P
panqiangbiao 已提交
26 27 28 29 30

**返回值:**

| 类型         | 说明   |
| ------------ | :----- |
P
panqiangbiao 已提交
31
| [MediaLibrary](#medialibrary) | 媒体库实例 |
P
panqiangbiao 已提交
32 33 34 35

**示例:**

```
P
panqiangbiao 已提交
36
import featureAbility from '@ohos.ability.featureAbility';
P
panqiangbiao 已提交
37

P
panqiangbiao 已提交
38
var context = featureAbility.getContext()
P
panqiangbiao 已提交
39
var media = mediaLibrary.getMediaLibrary(context);
P
panqiangbiao 已提交
40
```
P
panqiangbiao 已提交
41
## MediaLibrary
P
panqiangbiao 已提交
42

P
panqiangbiao 已提交
43
### getFileAssets<sup>8+</sup>
P
panqiangbiao 已提交
44 45


P
panqiangbiao 已提交
46
getFileAssets(options: MediaFetchOptions, callback: AsyncCallback&lt;FetchFileResult&gt;): void 
P
panqiangbiao 已提交
47 48 49

获取文件资源,使用callback方式返回异步结果。

P
panqiangbiao 已提交
50
**需要权限**:ohos.permission.READ_MEDIA
P
panqiangbiao 已提交
51

P
panqiangbiao 已提交
52
**系统能力**:SystemCapability.Multimedia.MediaLibrary.Core
P
panqiangbiao 已提交
53

P
panqiangbiao 已提交
54 55
**参数:**

P
panqiangbiao 已提交
56 57 58
| 参数名   | 类型                                                | 必填 | 说明                              |
| -------- | --------------------------------------------------- | ---- | --------------------------------- |
| options  | [MediaFetchOptions](#mediafetchoptions8)            | 是   | 文件获取选项                      |
P
panqiangbiao 已提交
59
| callback | AsyncCallback<[FetchFileResult](#fetchfileresult8)> | 是   | 异步获取FetchFileResult之后的回调 |
P
panqiangbiao 已提交
60 61 62 63

**示例:**

```
P
panqiangbiao 已提交
64 65 66 67 68 69
let fileKeyObj = mediaLibrary.FileKey
let imageType = mediaLibrary.MediaType.IMAGE
let imagesfetchOp = {
    selections: fileKeyObj.MEDIA_TYPE + '= ?',
    selectionArgs: [imageType.toString()],
};
P
panqiangbiao 已提交
70
mediaLibrary.getFileAssets(imagesfetchOp, (error, fetchFileResult) => {
P
panqiangbiao 已提交
71
    if (fetchFileResult != undefined) {
P
panqiangbiao 已提交
72
        console.info('mediaLibraryTest : ASSET_CALLBACK fetchFileResult success');
P
panqiangbiao 已提交
73 74 75 76
        fetchFileResult.getAllObject((err, fileAssetList) => {
            if (fileAssetList != undefined) {
                fileAssetList.forEach(getAllObjectInfo);
            }
P
panqiangbiao 已提交
77 78
    	});
    }
P
panqiangbiao 已提交
79
});
P
panqiangbiao 已提交
80
```
P
panqiangbiao 已提交
81
### getFileAssets<sup>8+</sup>
P
panqiangbiao 已提交
82

P
panqiangbiao 已提交
83
getFileAssets(options: MediaFetchOptions): Promise&lt;FetchFileResult&gt;
P
panqiangbiao 已提交
84 85 86

获取文件资源,使用Promise方式返回结果。

P
panqiangbiao 已提交
87
**需要权限**:ohos.permission.READ_MEDIA
P
panqiangbiao 已提交
88

P
panqiangbiao 已提交
89
**系统能力**:SystemCapability.Multimedia.MediaLibrary.Core
P
panqiangbiao 已提交
90

P
panqiangbiao 已提交
91 92
**参数:**

P
panqiangbiao 已提交
93 94
| 参数名  | 类型                                     | 必填 | 说明         |
| ------- | ---------------------------------------- | ---- | ------------ |
P
panqiangbiao 已提交
95
| options | [MediaFetchOptions](#mediafetchoptions8) | 是   | 文件检索选项 |
P
panqiangbiao 已提交
96 97 98

**返回值**

P
panqiangbiao 已提交
99 100
| 类型                          | 说明           |
| ----------------------------- | -------------- |
P
panqiangbiao 已提交
101
| [FetchFileResult](#fetchfileresult8) | 文件数据结果集 |
P
panqiangbiao 已提交
102 103 104 105

**示例:**

```
P
panqiangbiao 已提交
106 107 108 109 110 111
let fileKeyObj = mediaLibrary.FileKey
let imageType = mediaLibrary.MediaType.IMAGE
let imagesfetchOp = {
    selections: fileKeyObj.MEDIA_TYPE + '= ?',
    selectionArgs: [imageType.toString()],
};
P
panqiangbiao 已提交
112
mediaLibrary.getFileAssets(imagesfetchOp).then(function(fetchFileResult){
P
panqiangbiao 已提交
113 114 115 116
    console.info("getFileAssets successfully:"+ JSON.stringify(dir));
}).catch(function(err){
    console.info("getFileAssets failed with error:"+ err);
});
P
panqiangbiao 已提交
117 118
```

P
panqiangbiao 已提交
119
### on<sup>8+</sup>
P
panqiangbiao 已提交
120

P
panqiangbiao 已提交
121
on(type: 'deviceChange'|'albumChange'|'imageChange'|'audioChange'|'videoChange'|'fileChange'|'remoteFileChange', callback: Callback&lt;void&gt;): void
P
panqiangbiao 已提交
122

P
panqiangbiao 已提交
123
打开媒体媒体库变更通知,使用callback方式返回异步结果。
P
panqiangbiao 已提交
124

P
panqiangbiao 已提交
125
**系统能力**:SystemCapability.Multimedia.MediaLibrary.Core
P
panqiangbiao 已提交
126

P
panqiangbiao 已提交
127 128 129 130
**参数:**

| 参数名   | 类型                | 必填 | 说明                   |
| -------- | ---------------- | ---- | ------------------- |
P
panqiangbiao 已提交
131
| type  | string   | 是   | 媒体类型 <br/>'deviceChange':&nbsp;注册设备变更 <br/>'albumChange':&nbsp;相册变更<br/>'imageChange':&nbsp;图片文件变更<br/>'audioChange': &nbsp;音频文件变更<br/>'videoChange':  &nbsp;视频文件变更<br/>'fileChange':     &nbsp;文件变更<br/>'remoteFileChange':&nbsp;注册设备上文件变更 |
P
panqiangbiao 已提交
132
| callback | callback&lt;void&gt; | 是   | 回调返回空 |
P
panqiangbiao 已提交
133 134 135 136

**示例:**

```
P
panqiangbiao 已提交
137
mediaLibrary.on('imageChange', () => {
P
panqiangbiao 已提交
138
    // image file had changed, do something
P
panqiangbiao 已提交
139 140
})
```
P
panqiangbiao 已提交
141
### off<sup>8+</sup>
P
panqiangbiao 已提交
142

P
panqiangbiao 已提交
143
off(type: 'deviceChange'|'albumChange'|'imageChange'|'audioChange'|'videoChange'|'fileChange'|'remoteFileChange', callback?: Callback&lt;void&gt;): void
P
panqiangbiao 已提交
144

P
panqiangbiao 已提交
145
关闭媒体媒体库变更通知,使用callback方式返回异步结果。
P
panqiangbiao 已提交
146

P
panqiangbiao 已提交
147
**系统能力**:SystemCapability.Multimedia.MediaLibrary.Core
P
panqiangbiao 已提交
148

P
panqiangbiao 已提交
149 150 151 152
**参数:**

| 参数名   | 类型                | 必填 | 说明                   |
| -------- | ---------------- | ---- | ------------------- |
P
panqiangbiao 已提交
153
| type  | string | 是   | 媒体类型 <br/>'deviceChange':&nbsp;注册设备变更 <br/>'albumChange':&nbsp;相册变更<br/>'imageChange':&nbsp;图片文件变更<br/>'audioChange': &nbsp;音频文件变更<br/>'videoChange':  &nbsp;视频文件变更<br/>'fileChange':     &nbsp;文件变更<br/>'remoteFileChange':&nbsp;注册设备上文件变更         |
P
panqiangbiao 已提交
154
| callback | callback&lt;void&gt; | 否   | 回调返回空 |
P
panqiangbiao 已提交
155 156 157 158

**示例:**

```
P
panqiangbiao 已提交
159
mediaLibrary.off('imageChange', () => {
P
panqiangbiao 已提交
160
    // stop listening success
P
panqiangbiao 已提交
161 162 163
})
```

P
panqiangbiao 已提交
164
### createAsset <sup>8+</sup>
P
panqiangbiao 已提交
165

P
panqiangbiao 已提交
166
createAsset(mediaType: MediaType, displayName: string, relativePath: string, callback: AsyncCallback&lt;FileAsset&gt;): void
P
panqiangbiao 已提交
167 168 169

创建媒体资源,使用callback方式返回结果。

P
panqiangbiao 已提交
170
**需要权限**:ohos.permission.READ_MEDIA, ohos.permission.WRITE_MEDIA
P
panqiangbiao 已提交
171

P
panqiangbiao 已提交
172
**系统能力**:SystemCapability.Multimedia.MediaLibrary.Core
P
panqiangbiao 已提交
173

P
panqiangbiao 已提交
174 175
**参数:**

P
panqiangbiao 已提交
176 177
| 参数名       | 类型                                    | 必填 | 说明                                                         |
| ------------ | --------------------------------------- | ---- | ------------------------------------------------------------ |
P
panqiangbiao 已提交
178
| mediaType    | [MediaType](#mediatype)                 | 是   | 媒体类型                                                     |
P
panqiangbiao 已提交
179
| displayName  | string                                  | 是   | 展示文件名                                                   |
P
panqiangbiao 已提交
180
| relativePath | string                                  | 是   | 文件保存路径,可以通过[getPublicDirectory](#getpublicdirectory8)获取不同类型文件的保存路径 |
P
panqiangbiao 已提交
181
| callback     | AsyncCallback<[FileAsset](#fileasset8)> | 是   | 异步获取媒体数据FileAsset之后的回调                          |
P
panqiangbiao 已提交
182 183 184 185

**示例:**

```
P
panqiangbiao 已提交
186 187 188 189 190 191 192 193 194 195 196 197 198
async function example() {
    // 使用Callback方式创建Image类型文件
    let mediaType = mediaLibrary.MediaType.IMAGE;
    let DIR_IMAGE = mediaLibrary.DirectoryType.DIR_IMAGE;
    const path = await media.getPublicDirectory(DIR_IMAGE);
    mediaLibrary.createAsset(mediaType, 'imageCallBack.jpg', path + 'myPicture/', (err, fileAsset) => {
        if (fileAsset != undefined) {
            console.info('createAsset successfully, message = ' + err);
        } else {
            console.info('createAsset failed, message = ' + err);
        }
    });
}
P
panqiangbiao 已提交
199 200
```

P
panqiangbiao 已提交
201
### createAsset<sup>8+</sup>
P
panqiangbiao 已提交
202

P
panqiangbiao 已提交
203
createAsset(mediaType: MediaType, displayName: string, relativePath: string): Promise&lt;FileAsset&gt;
P
panqiangbiao 已提交
204 205 206

创建媒体资源,使用Promise方式返回结果。

P
panqiangbiao 已提交
207
**需要权限**:ohos.permission.READ_MEDIA, ohos.permission.WRITE_MEDIA
P
panqiangbiao 已提交
208

P
panqiangbiao 已提交
209
**系统能力**:SystemCapability.Multimedia.MediaLibrary.Core
P
panqiangbiao 已提交
210

P
panqiangbiao 已提交
211 212
**参数:**

P
panqiangbiao 已提交
213 214
| 参数名       | 类型                    | 必填 | 说明                                                         |
| ------------ | ----------------------- | ---- | ------------------------------------------------------------ |
P
panqiangbiao 已提交
215
| mediaType    | [MediaType](#mediatype) | 是   | 媒体类型                                                     |
P
panqiangbiao 已提交
216 217
| displayName  | string                  | 是   | 展示文件名                                                   |
| relativePath | string                  | 是   | 相对路径,可以通过getPublicDirectory获取不同类型媒体文件的一层目录的relative path |
P
panqiangbiao 已提交
218 219 220

**返回值**

P
panqiangbiao 已提交
221 222 223
| 类型                     | 说明              |
| ------------------------ | ----------------- |
| [FileAsset](#fileasset8) | 媒体数据FileAsset |
P
panqiangbiao 已提交
224 225 226 227

**示例:**

```
P
panqiangbiao 已提交
228 229 230 231 232 233 234 235 236 237 238
async function example() {
    // 使用Promise方式创建Image类型文件
    let mediaType = mediaLibrary.MediaType.IMAGE;
    let DIR_IMAGE = mediaLibrary.DirectoryType.DIR_IMAGE;
    const path = await media.getPublicDirectory(DIR_IMAGE);
    mediaLibrary.createAsset(mediaType, "image01.jpg", path + 'myPicture/').then (function (asset) {
        console.info("createAsset successfully:"+ JSON.stringify(asset));
    }).catch(function(err){
        console.info("createAsset failed with error:"+ err);
    });
}
P
panqiangbiao 已提交
239 240
```

P
panqiangbiao 已提交
241
### getPublicDirectory<sup>8+</sup>
P
panqiangbiao 已提交
242

P
panqiangbiao 已提交
243
getPublicDirectory(type: DirectoryType, callback: AsyncCallback&lt;string&gt;): void
P
panqiangbiao 已提交
244

P
panqiangbiao 已提交
245
获取公共目录路径,使用callback方式返回结果。
P
panqiangbiao 已提交
246 247 248 249 250 251 252

**系统能力**:SystemCapability.Multimedia.MediaLibrary.Core

**参数:**

| 参数名 | 类型                            | 必填 | 说明         |
| ------ | ------------------------------- | ---- | ------------ |
P
panqiangbiao 已提交
253
| type   | [DirectoryType](#directorytype) | 是   | 公共目录类型 |
P
panqiangbiao 已提交
254 255 256 257 258 259
| callback   |AsyncCallback&lt;string&gt; | 是   | callback 返回公共目录路径 |

**示例:**

```
let DIR_CAMERA = mediaLibrary.DirectoryType.DIR_CAMERA;
P
panqiangbiao 已提交
260
media.getPublicDirectory(DIR_CAMERA, (err, dicResult) => {
P
panqiangbiao 已提交
261
    if (dicResult == 'Camera/') {
P
panqiangbiao 已提交
262
        console.info('mediaLibraryTest : getPublicDirectory passed');
P
panqiangbiao 已提交
263
    } else {
P
panqiangbiao 已提交
264
        console.info('mediaLibraryTest : getPublicDirectory failed');
P
panqiangbiao 已提交
265 266 267 268
    }
});
```

P
panqiangbiao 已提交
269
### getPublicDirectory<sup>8+</sup>
P
panqiangbiao 已提交
270

P
panqiangbiao 已提交
271
getPublicDirectory(type: DirectoryType): Promise&lt;string&gt;
P
panqiangbiao 已提交
272

P
panqiangbiao 已提交
273
获取公共目录路径,使用Promise方式返回结果。
P
panqiangbiao 已提交
274 275 276 277 278 279 280

**系统能力**:SystemCapability.Multimedia.MediaLibrary.Core

**参数:**

| 参数名 | 类型                            | 必填 | 说明         |
| ------ | ------------------------------- | ---- | ------------ |
P
panqiangbiao 已提交
281
| type   | [DirectoryType](#directorytype) | 是   | 公共目录类型 |
P
panqiangbiao 已提交
282 283 284 285 286 287 288 289 290 291

**返回值:**

| 类型            | 说明             |
| --------------- | ---------------- |
| Promise<string> | 返回公共目录路径 |

**示例:**

```
P
panqiangbiao 已提交
292
async function example() {
P
panqiangbiao 已提交
293 294
    let DIR_CAMERA = mediaLibrary.DirectoryType.DIR_CAMERA;
    const dicResult = await media.getPublicDirectory(DIR_CAMERA);
P
panqiangbiao 已提交
295
    if (dicResult == 'Camera/') {
P
panqiangbiao 已提交
296 297 298 299
        console.info('MediaLibraryTest : getPublicDirectory');
    } else {
        console.info('MediaLibraryTest : getPublicDirectory failed');
    }
P
panqiangbiao 已提交
300 301 302
}
```

P
panqiangbiao 已提交
303
### getAlbums<sup>8+</sup>
P
panqiangbiao 已提交
304

P
panqiangbiao 已提交
305
getAlbums(options: MediaFetchOptions, callback: AsyncCallback<Array&lt;Album&gt;>): void
P
panqiangbiao 已提交
306

P
panqiangbiao 已提交
307
获取相册列表,使用callback 方式返回结果。
P
panqiangbiao 已提交
308

P
panqiangbiao 已提交
309
**需要权限**:ohos.permission.READ_MEDIA
P
panqiangbiao 已提交
310

P
panqiangbiao 已提交
311
**系统能力**:SystemCapability.Multimedia.MediaLibrary.Core
P
panqiangbiao 已提交
312

P
panqiangbiao 已提交
313 314
**参数**

P
panqiangbiao 已提交
315 316
| 参数名   | 类型                                         | 必填 | 说明                        |
| -------- | -------------------------------------------- | ---- | --------------------------- |
P
panqiangbiao 已提交
317
| options  | [MediaFetchOptions](#mediafetchoptions8)     | 是   | 相册获取条件                |
P
panqiangbiao 已提交
318
| callback | AsyncCallback&lt;Array<[Album](#album8)>&gt; | 是   | 异步获取Album列表之后的回调 |
P
panqiangbiao 已提交
319 320 321 322

**示例:**

```
P
panqiangbiao 已提交
323 324 325 326
let AlbumNoArgsfetchOp = {
    selections: '',
    selectionArgs: [],
};
P
panqiangbiao 已提交
327
mediaLibrary.getAlbums(AlbumNoArgsfetchOp, (err, albumList) => {
P
panqiangbiao 已提交
328 329 330 331 332 333 334
    if (albumList != undefined) {
        const album = albumList[0];
        console.info('album.albumName = ' + album.albumName);
        console.info('album.count = ' + album.count);
     } else {
        console.info('getAlbum fail, message = ' + err);
     }
P
panqiangbiao 已提交
335
})
P
panqiangbiao 已提交
336 337
```

P
panqiangbiao 已提交
338
### getAlbums<sup>8+</sup>
P
panqiangbiao 已提交
339

P
panqiangbiao 已提交
340
getAlbums(options: MediaFetchOptions): Promise<Array&lt;Album&gt;>
P
panqiangbiao 已提交
341

P
panqiangbiao 已提交
342
获取相册列表,使用 promise 方式返回结果。
P
panqiangbiao 已提交
343

P
panqiangbiao 已提交
344
**需要权限**:ohos.permission.READ_MEDIA
P
panqiangbiao 已提交
345

P
panqiangbiao 已提交
346
**系统能力**:SystemCapability.Multimedia.MediaLibrary.Core
P
panqiangbiao 已提交
347

P
panqiangbiao 已提交
348 349
**参数:**

P
panqiangbiao 已提交
350 351 352
| 参数名  | 类型                                     | 必填 | 说明         |
| ------- | ---------------------------------------- | ---- | ------------ |
| options | [MediaFetchOptions](#mediafetchoptions8) | 是   | 相册获取条件 |
P
panqiangbiao 已提交
353 354 355

**返回值:**

P
panqiangbiao 已提交
356 357 358
| 类型                             | 说明          |
| -------------------------------- | ------------- |
| Promise<Array<[Album](#album8)>> | 返回Album列表 |
P
panqiangbiao 已提交
359 360 361 362

**示例:**

```
P
panqiangbiao 已提交
363 364 365 366
let AlbumNoArgsfetchOp = {
    selections: '',
    selectionArgs: [],
};
P
panqiangbiao 已提交
367
mediaLibrary.getAlbums(AlbumNoArgsfetchOp).then(function(albumList){
P
panqiangbiao 已提交
368 369 370 371
    console.info("getAlbums successfully:"+ JSON.stringify(albumList));
}).catch(function(err){
    console.info("getAlbums failed with error:"+ err);
});
P
panqiangbiao 已提交
372 373
```

P
panqiangbiao 已提交
374
### release<sup>8+</sup>
P
panqiangbiao 已提交
375

P
panqiangbiao 已提交
376
release(callback: AsyncCallback&lt;void&gt;): void
P
panqiangbiao 已提交
377

P
panqiangbiao 已提交
378 379
释放MediaLibrary实例。
当后续不需要使用MediaLibrary实例中的方法时调用。
P
panqiangbiao 已提交
380

P
panqiangbiao 已提交
381
**系统能力**:SystemCapability.Multimedia.MediaLibrary.Core
P
panqiangbiao 已提交
382

P
panqiangbiao 已提交
383 384 385 386
**参数:**

| 参数名   | 类型                   | 必填 | 说明                   |
| -------- | ------------------- | ---- | ---------------------- |
P
panqiangbiao 已提交
387
| callback | AsyncCallback&lt;void&gt; | 是   | 回调表示成功还是失败 |
P
panqiangbiao 已提交
388 389 390 391

**示例:**

```
P
panqiangbiao 已提交
392
var media = mediaLibrary.getMediaLibrary(context);
P
panqiangbiao 已提交
393
media.release((err) => {
P
panqiangbiao 已提交
394
    // do something
P
panqiangbiao 已提交
395
});
P
panqiangbiao 已提交
396 397
```

P
panqiangbiao 已提交
398
### release<sup>8+</sup>
P
panqiangbiao 已提交
399

P
panqiangbiao 已提交
400
release(): Promise&lt;void&gt;
P
panqiangbiao 已提交
401

P
panqiangbiao 已提交
402 403
释放MediaLibrary实例。
当后续不需要使用MediaLibrary实例中的方法时调用。
P
panqiangbiao 已提交
404

P
panqiangbiao 已提交
405
**系统能力**:SystemCapability.Multimedia.MediaLibrary.Core
P
panqiangbiao 已提交
406

P
panqiangbiao 已提交
407 408 409 410
**返回值:**

| 类型          | 说明                                |
| ------------- | ----------------------------------- |
P
panqiangbiao 已提交
411
| Promise&lt;void&gt; | Promise实例,用于获取异步返回结果 |
P
panqiangbiao 已提交
412 413 414 415

**示例:**

```
P
panqiangbiao 已提交
416 417
var media = mediaLibrary.getMediaLibrary(context);
media.release()
P
panqiangbiao 已提交
418 419
```

P
panqiangbiao 已提交
420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688
### storeMediaAsset

storeMediaAsset(option: MediaAssetOption, callback: AsyncCallback&lt;string&gt;): void

保存媒体资源,以异步方法获取保存成功的URI,使用callback形式返回结果。

本接口在OpenHarmony 3.1 Release版本仅为接口定义,暂不支持使用。接口将在OpenHarmony 3.1 MR版本中提供使用支持。

**系统能力**:SystemCapability.Multimedia.MediaLibrary.Core

**参数:**

| 参数名   | 类型                                  | 必填 | 说明                                        |
| -------- | ------------------------------------- | ---- | ------------------------------------------- |
| option   | [MediaAssetOption](#mediaassetoption) | 是   | 媒体资源选项。                              |
| callback | AsyncCallback&lt;string&gt;           | 是   | 媒体资源保存回调,返回保存成功后得到的URI。 |

**示例:**

  ```
let option = {
    src : "file:///data/data/ohos.xxx.yyy/files/image.png",
    mimeType : "image/jpeg",
    relativePath : "imageDir/image2/"
};
mediaLibrary.getMediaLibrary().storeMediaAsset(option, (err, value) => {
    if (err) {
        console.log("An error occurred when storing media resources.");
        return;
    }
    console.log("Media resources stored. ");
    // Obtain the URI that stores media resources.
});
  ```


### storeMediaAsset

storeMediaAsset(option: MediaAssetOption): Promise&lt;string&gt;

保存媒体资源,以异步方法获取保存成功的URI,使用Promise形式返回结果。

本接口在OpenHarmony 3.1 Release版本仅为接口定义,暂不支持使用。接口将在OpenHarmony 3.1 MR版本中提供使用支持。

**系统能力**:SystemCapability.Multimedia.MediaLibrary.Core

**参数:**

| 参数名 | 类型                                  | 必填 | 说明           |
| ------ | ------------------------------------- | ---- | -------------- |
| option | [MediaAssetOption](#mediaassetoption) | 是   | 媒体资源选项。 |

**返回值:**

| 类型                  | 说明                                           |
| --------------------- | ---------------------------------------------- |
| Promise&lt;string&gt; | Promise实例,用于异步获取保存成功后得到的URI。 |

**示例:**

  ```
let option = {
    src : "file:///data/data/ohos.xxx.yyy/files/image.jpg",
    mimeType : "image/jpeg",
    relativePath : "imageDir/image2/"
};
mediaLibrary.getMediaLibrary().storeMediaAsset(option).then((value) => {
    console.log("Media resources stored.");
    // Obtain the URI that stores media resources.
}).catch((err) => {
    console.log("An error occurred when storing media resources.");
});
  ```


### startImagePreview

startImagePreview(images: Array&lt;string&gt;, index: number, callback: AsyncCallback&lt;void&gt;): void

启动图片预览界面并限定预览开始显示的图片。可以预览指定序号的单张本地图片(dataability://),也可以预览列表中的所有网络图片(https://)。使用callback方式进行异步回调。

本接口在OpenHarmony 3.1 Release版本仅为接口定义,暂不支持使用。接口将在OpenHarmony 3.1 MR版本中提供使用支持。

**系统能力**:SystemCapability.Multimedia.MediaLibrary.Core

**参数:**

| 参数名   | 类型                      | 必填 | 说明                                                |
| -------- | ------------------------- | ---- | --------------------------------------------------- |
| images   | Array&lt;string&gt;       | 是   | 预览的图片URI("https://","dataability://")列表。 |
| index    | number                    | 是   | 开始显示的图片序号。                                |
| callback | AsyncCallback&lt;void&gt; | 是   | 图片预览回调,失败时返回错误信息。                  |

**示例:**

  ```
let images = [
    "dataability:///media/external/images/media/50",
    "dataability:///media/external/images/media/55"
];
let images = [
    "https://media.xxxx.com/image1.jpg",
    "https://media.xxxx.com/image2.jpg"
];
let index = 1;
mediaLibrary.getMediaLibrary().startImagePreview(images, index, (err) => {
    if (err) {
        console.log("An error occurred when previewing the images.");
        return;
    }
    console.log("Succeeded in previewing the images.");
});
  ```


### startImagePreview

startImagePreview(images: Array&lt;string&gt;, callback: AsyncCallback&lt;void&gt;): void

启动图片预览界面,可以预览列表中首张本地图片(dataability://),也可以预览列表中的所有网络图片(https://)。使用callback方式进行异步回调。

本接口在OpenHarmony 3.1 Release版本仅为接口定义,暂不支持使用。接口将在OpenHarmony 3.1 MR版本中提供使用支持。

**系统能力**:SystemCapability.Multimedia.MediaLibrary.Core

**参数:**

| 参数名   | 类型                      | 必填 | 说明                                                |
| -------- | ------------------------- | ---- | --------------------------------------------------- |
| images   | Array&lt;string&gt;       | 是   | 预览的图片URI("https://","dataability://")列表。 |
| callback | AsyncCallback&lt;void&gt; | 是   | 图片预览回调,失败时返回错误信息。                  |

**示例:**

  ```
let images = [
    "dataability:///media/external/images/media/50",
    "dataability:///media/external/images/media/55"
];
let images = [
    "https://media.xxxx.com/image1.jpg",
    "https://media.xxxx.com/image2.jpg"
];
mediaLibrary.getMediaLibrary().startImagePreview(images, (err) => {
    if (err) {
        console.log("An error occurred when previewing the images.");
        return;
    }
    console.log("Succeeded in previewing the images.");
});
  ```


### startImagePreview

startImagePreview(images: Array&lt;string&gt;, index?: number): Promise&lt;void&gt;

启动图片预览界面并限定预览开始显示的图片。可以预览指定序号的单张本地图片(dataability://),也可以预览列表中的所有网络图片(https://)。使用Promise方式进行异步回调。

本接口在OpenHarmony 3.1 Release版本仅为接口定义,暂不支持使用。接口将在OpenHarmony 3.1 MR版本中提供使用支持。

**系统能力**:SystemCapability.Multimedia.MediaLibrary.Core

**参数:**

| 参数名 | 类型                | 必填 | 说明                                                |
| ------ | ------------------- | ---- | --------------------------------------------------- |
| images | Array&lt;string&gt; | 是   | 预览的图片URI("https://","dataability://")列表。 |
| index  | number              | 否   | 开始显示的图片序号,不选择时默认为0。               |

**返回值:**

| 类型                | 说明                                                    |
| ------------------- | ------------------------------------------------------- |
| Promise&lt;void&gt; | Promise实例,用于异步获取预览结果,失败时返回错误信息。 |

**示例:**

  ```
let images = [
    "dataability:///media/external/images/media/50",
    "dataability:///media/external/images/media/55"
];
let images = [
    "https://media.xxxx.com/image1.jpg",
    "https://media.xxxx.com/image2.jpg"
];
let index = 1;
mediaLibrary.getMediaLibrary().startImagePreview(images, index).then(() => {
    console.log("Succeeded in previewing the images.");
}).catch((err) => {
    console.log("An error occurred when previewing the images.");
});
  ```


### startMediaSelect

startMediaSelect(option: MediaSelectOption, callback: AsyncCallback&lt;Array&lt;string&gt;&gt;): void

启动媒体选择界面,以异步方法获取选择的媒体URI列表,使用callback形式返回结果。

本接口在OpenHarmony 3.1 Release版本仅为接口定义,暂不支持使用。接口将在OpenHarmony 3.1 MR版本中提供使用支持。

**系统能力**:SystemCapability.Multimedia.MediaLibrary.Core

**参数:**

| 参数名   | 类型                                     | 必填 | 说明                                                    |
| -------- | ---------------------------------------- | ---- | ------------------------------------------------------- |
| option   | [MediaSelectOption](#mediaselectoption)  | 是   | 媒体选择选项。                                          |
| callback | AsyncCallback&lt;Array&lt;string&gt;&gt; | 是   | 媒体选择回调,返回选择的媒体URI(dataability://)列表。 |

**示例:**

  ```
let option = {
    type : "image",
    count : 2
};
mediaLibrary.getMediaLibrary().startMediaSelect(option, (err, value) => {
    if (err) {
        console.log("An error occurred when selecting media resources.");
        return;
    }
    console.log("Media resources selected.");
    // Obtain the media selection value.
});
  ```


### startMediaSelect

startMediaSelect(option: MediaSelectOption): Promise&lt;Array&lt;string&gt;&gt;

启动媒体选择界面,以异步方法获取选择的媒体URI列表,使用Promise形式返回结果。

本接口在OpenHarmony 3.1 Release版本仅为接口定义,暂不支持使用。接口将在OpenHarmony 3.1 MR版本中提供使用支持。

**系统能力**:SystemCapability.Multimedia.MediaLibrary.Core

**参数:**

| 参数名 | 类型                                    | 必填 | 说明           |
| ------ | --------------------------------------- | ---- | -------------- |
| option | [MediaSelectOption](#mediaselectoption) | 是   | 媒体选择选项。 |

**返回值:**

| 类型                               | 说明                                                         |
| ---------------------------------- | ------------------------------------------------------------ |
| Promise&lt;Array&lt;string&gt;&gt; | Promise实例,用于异步获取选择的媒体URI(dataability://)列表。 |

**示例:**

  ```
let option = {
    type : "image",
    count : 2
};
mediaLibrary.getMediaLibrary().startMediaSelect(option).then((value) => {
    console.log("Media resources selected.");
    // Obtain the media selection value.
}).catch((err) => {
    console.log("An error occurred when selecting media resources.");
});

  ```

P
panqiangbiao 已提交
689 690 691 692 693 694
## FileAsset<sup>8+</sup>

提供封装文件属性的方法。

### **属性**

P
panqiangbiao 已提交
695 696 697 698 699
| 名称         | 类型                    | 可读 | 可写 | 说明                                                   |
| ------------ | ----------------------- | ---- | ---- | ------------------------------------------------------ |
| id           | number                  | 是   | 否   | 文件资源编号                                           |
| uri          | string                  | 是   | 否   | 文件资源uri(如:dataability:///media/image/2)         |
| mimeType     | string                  | 是   | 否   | 文件扩展属性                                           |
P
panqiangbiao 已提交
700
| mediaType    | [MediaType](#mediatype) | 是   | 否   | 媒体类型                                               |
P
panqiangbiao 已提交
701
| displayName  | string                  | 是   | 是   | 显示文件名,包含后缀名                                 |
P
panqiangbiao 已提交
702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717
| title        | string                  | 是   | 是   | 文件标题                                               |
| relativePath | string                  | 是   | 是   | 相对公共目录路径                                       |
| parent       | number                  | 是   | 否   | 父目录id                                               |
| size         | number                  | 是   | 否   | 文件大小(单位:字节)                                 |
| dateAdded    | number                  | 是   | 否   | 添加日期(添加文件时间到1970年1月1日的秒数值)         |
| dateModified | number                  | 是   | 否   | 修改日期(修改文件时间到1970年1月1日的秒数值)         |
| dateTaken    | number                  | 是   | 否   | 拍摄日期(文件拍照时间到1970年1月1日的秒数值)         |
| artist       | string                  | 是   | 否   | 作者                                                   |
| audioAlbum   | string                  | 是   | 否   | 专辑                                                   |
| width        | number                  | 是   | 否   | 图片宽度(单位:像素)                                 |
| height       | number                  | 是   | 否   | 图片高度(单位:像素)                                 |
| orientation  | number                  | 是   | 是   | 图片显示方向(顺时针旋转角度,如0,90,180  单位:度) |
| duration     | number                  | 是   | 否   | 持续时间(单位:秒)                                   |
| albumId      | number                  | 是   | 否   | 文件所归属的相册编号                                   |
| albumUri     | string                  | 是   | 否   | 文件所归属相册uri                                      |
| albumName    | string                  | 是   | 否   | 文件所归属相册名称                                     |
P
panqiangbiao 已提交
718 719 720


### isDirectory<sup>8+</sup>
P
panqiangbiao 已提交
721

P
panqiangbiao 已提交
722
isDirectory(callback: AsyncCallback&lt;boolean&gt;): void
P
panqiangbiao 已提交
723 724 725

判断fileAsset是否为目录,使用callback方式返回异步结果。

P
panqiangbiao 已提交
726
**需要权限**:ohos.permission.READ_MEDIA
P
panqiangbiao 已提交
727

P
panqiangbiao 已提交
728
**系统能力**:SystemCapability.Multimedia.MediaLibrary.Core
P
panqiangbiao 已提交
729

P
panqiangbiao 已提交
730 731 732 733 734 735 736 737 738
**参数:**

| 参数名   | 类型                   | 必填 | 说明                          |
| -------- | ---------------------- | ---- | ----------------------------- |
| callback | AsyncCallback&lt;boolean&gt; | 是   | 当前FileAsset是否是目录的回调 |

**示例:**

```
P
panqiangbiao 已提交
739
async function example() {
P
panqiangbiao 已提交
740 741 742 743
    let imageType = mediaLibrary.MediaType.IMAGE;
    let getImageOp = {
      selections: fileKeyObj.MEDIA_TYPE + '= ?',
      selectionArgs: [imageType.toString()],
P
panqiangbiao 已提交
744 745
      order: fileKeyObj.DATE_ADDED + " DESC",
      extendArgs: "",
P
panqiangbiao 已提交
746 747 748 749 750 751 752
    };
    const fetchFileResult = await media.getFileAssets(getImageOp);
    const asset = await fetchFileResult.getFirstObject();
    asset.isDirectory((err, isDirectory) => {
        // do something
    });
}
P
panqiangbiao 已提交
753 754
```

P
panqiangbiao 已提交
755
### isDirectory<sup>8+</sup>
P
panqiangbiao 已提交
756

P
panqiangbiao 已提交
757
isDirectory():Promise&lt;boolean&gt;
P
panqiangbiao 已提交
758 759 760

判断fileAsset是否为目录,使用Promise方式返回异步结果。

P
panqiangbiao 已提交
761
**需要权限**:ohos.permission.READ_MEDIA
P
panqiangbiao 已提交
762

P
panqiangbiao 已提交
763
**系统能力**:SystemCapability.Multimedia.MediaLibrary.Core
P
panqiangbiao 已提交
764

P
panqiangbiao 已提交
765 766 767 768
**返回值:**

| 类型             | 说明                                       |
| ---------------- | ------------------------------------------ |
P
panqiangbiao 已提交
769
| Promise&lt;boolean&gt; | Promise实例,返回当前FileAsset是否是目录 |
P
panqiangbiao 已提交
770 771 772 773

**示例:**

```
P
panqiangbiao 已提交
774
async function example() {
P
panqiangbiao 已提交
775 776 777 778
    let imageType = mediaLibrary.MediaType.IMAGE;
    let getImageOp = {
      selections: fileKeyObj.MEDIA_TYPE + '= ?',
      selectionArgs: [imageType.toString()],
P
panqiangbiao 已提交
779 780
      order: fileKeyObj.DATE_ADDED + " DESC",
      extendArgs: "",
P
panqiangbiao 已提交
781 782 783 784 785 786 787 788 789
    };
    const fetchFileResult = await media.getFileAssets(getImageOp);
    const asset = await fetchFileResult.getFirstObject();
    asset.isDirectory().then(function(isDirectory){
        console.info("isDirectory result:"+ isDirectory);
    }).catch(function(err){
        console.info("isDirectory failed with error:"+ err);
    });
}
P
panqiangbiao 已提交
790 791
```

P
panqiangbiao 已提交
792
### commitModify<sup>8+</sup>
P
panqiangbiao 已提交
793

P
panqiangbiao 已提交
794
commitModify(callback: AsyncCallback&lt;void&gt;): void
P
panqiangbiao 已提交
795 796 797

修改文件的元数据,使用callback方式返回异步结果。

P
panqiangbiao 已提交
798
**需要权限**:ohos.permission.READ_MEDIA, ohos.permission.WRITE_MEDIA
P
panqiangbiao 已提交
799

P
panqiangbiao 已提交
800
**系统能力**:SystemCapability.Multimedia.MediaLibrary.Core
P
panqiangbiao 已提交
801

P
panqiangbiao 已提交
802 803 804 805 806 807 808 809 810
**参数:**

| 参数名   | 类型                   | 必填 | 说明                 |
| -------- | ---------------------- | ---- | -------------------- |
| callback | AsyncCallback&lt;void&gt; | 是   | 回调返回空 |

**示例:**

```
P
panqiangbiao 已提交
811
async function example() {
P
panqiangbiao 已提交
812 813 814 815
    let imageType = mediaLibrary.MediaType.IMAGE;
    let getImageOp = {
      selections: fileKeyObj.MEDIA_TYPE + '= ?',
      selectionArgs: [imageType.toString()],
P
panqiangbiao 已提交
816 817
      order: fileKeyObj.DATE_ADDED + " DESC",
      extendArgs: "",
P
panqiangbiao 已提交
818 819 820
    };
    const fetchFileResult = await media.getFileAssets(getImageOp);
    const asset = await fetchFileResult.getFirstObject();
P
panqiangbiao 已提交
821
    asset.title = 'newtitle';
P
panqiangbiao 已提交
822 823
    asset.commitModify(() => {
        console.info('commitModify success');   
P
panqiangbiao 已提交
824
    });
P
panqiangbiao 已提交
825
}
P
panqiangbiao 已提交
826 827
```

P
panqiangbiao 已提交
828
### commitModify<sup>8+</sup>
P
panqiangbiao 已提交
829

P
panqiangbiao 已提交
830
commitModify(): Promise&lt;void&gt;
P
panqiangbiao 已提交
831 832 833

修改文件的元数据,使用promise方式返回异步结果。

P
panqiangbiao 已提交
834
**需要权限**:ohos.permission.READ_MEDIA, ohos.permission.WRITE_MEDIA
P
panqiangbiao 已提交
835

P
panqiangbiao 已提交
836
**系统能力**:SystemCapability.Multimedia.MediaLibrary.Core
P
panqiangbiao 已提交
837

P
panqiangbiao 已提交
838 839 840 841
**返回值:**

| 类型          | 说明                          |
| ------------- | ----------------------------- |
P
panqiangbiao 已提交
842
| Promise&lt;void&gt; | Promise返回空 |
P
panqiangbiao 已提交
843 844 845 846

**示例:**

```
P
panqiangbiao 已提交
847
async function example() {
P
panqiangbiao 已提交
848 849 850 851
    let imageType = mediaLibrary.MediaType.IMAGE;
    let getImageOp = {
      selections: fileKeyObj.MEDIA_TYPE + '= ?',
      selectionArgs: [imageType.toString()],
P
panqiangbiao 已提交
852 853
      order: fileKeyObj.DATE_ADDED + " DESC",
      extendArgs: "",
P
panqiangbiao 已提交
854 855 856
    };
    const fetchFileResult = await media.getFileAssets(getImageOp);
    const asset = await fetchFileResult.getFirstObject();
P
panqiangbiao 已提交
857
    asset.title = 'newtitle';
P
panqiangbiao 已提交
858 859
    asset.commitModify();
}
P
panqiangbiao 已提交
860 861
```

P
panqiangbiao 已提交
862
### open<sup>8+</sup>
P
panqiangbiao 已提交
863

P
panqiangbiao 已提交
864
open(mode: string, callback: AsyncCallback&lt;number&gt;): void
P
panqiangbiao 已提交
865 866 867

打开当前文件,使用callback方式返回异步结果。

P
panqiangbiao 已提交
868
**需要权限**:ohos.permission.READ_MEDIA('r'模式打开),ohos.permission.WRITE_MEDIA('w'模式打开)
P
panqiangbiao 已提交
869

P
panqiangbiao 已提交
870
**系统能力**:SystemCapability.Multimedia.MediaLibrary.Core
P
panqiangbiao 已提交
871

P
panqiangbiao 已提交
872 873 874 875
**参数**

| 参数名   | 类型                   | 必填 | 说明                 |
| -------- | ---------------------- | ---- | -------------------- |
P
panqiangbiao 已提交
876
| mode     | string                 | 是   | 打开文件方式,如:'r'(只读), 'w'(只写), 'rw'(读写) |
P
panqiangbiao 已提交
877 878 879 880 881
| callback | AsyncCallback&lt;number&gt; | 是   | 回调返回文件句柄 |

**示例:**

```
P
panqiangbiao 已提交
882
async function example() {
P
panqiangbiao 已提交
883
    let mediaType = mediaLibrary.MediaType.IMAGE;
P
panqiangbiao 已提交
884 885
    let DIR_IMAGE = mediaLibrary.DirectoryType.DIR_IMAGE;
    const path = await media.getPublicDirectory(DIR_IMAGE);
P
panqiangbiao 已提交
886 887 888 889 890 891 892 893 894
    asset = await media.createAsset(mediaType, "image00003.jpg", path);
    asset.open('rw', (openError, fd) => {
            if(fd > 0){
                asset.close(fd);
            }else{
                console.info('File Open Failed!' + openError);
            }
    });
}
P
panqiangbiao 已提交
895 896
```

P
panqiangbiao 已提交
897
### open<sup>8+</sup>
P
panqiangbiao 已提交
898

P
panqiangbiao 已提交
899
open(mode: string): Promise&lt;number&gt;
P
panqiangbiao 已提交
900 901 902

打开当前文件,使用promise方式返回异步结果。

P
panqiangbiao 已提交
903
**需要权限**:ohos.permission.READ_MEDIA('r'模式打开),ohos.permission.WRITE_MEDIA('w'模式打开)
P
panqiangbiao 已提交
904

P
panqiangbiao 已提交
905
**系统能力**:SystemCapability.Multimedia.MediaLibrary.Core
P
panqiangbiao 已提交
906

P
panqiangbiao 已提交
907 908
**参数:**

P
panqiangbiao 已提交
909 910 911
| 参数名 | 类型   | 必填 | 说明                                                     |
| ------ | ------ | ---- | -------------------------------------------------------- |
| mode   | string | 是   | 打开文件方式,如:'r'(只读), 'w'(只写), 'rw'(读写) |
P
panqiangbiao 已提交
912 913 914 915 916

**返回值:**

| 类型          | 说明                          |
| ------------- | ----------------------------- |
P
panqiangbiao 已提交
917
| Promise&lt;number&gt; | Promise返回文件句柄 |
P
panqiangbiao 已提交
918 919 920 921

**示例:**

```
P
panqiangbiao 已提交
922
async function example() {
P
panqiangbiao 已提交
923
    let mediaType = mediaLibrary.MediaType.IMAGE;
P
panqiangbiao 已提交
924 925
    let DIR_IMAGE = mediaLibrary.DirectoryType.DIR_IMAGE;
    const path = await media.getPublicDirectory(DIR_IMAGE);
P
panqiangbiao 已提交
926
    asset = await media.createAsset(mediaType, "image00003.jpg", path);
P
panqiangbiao 已提交
927 928 929 930 931 932 933
    asset.open('rw')
        .then((fd) => {
            console.info('File fd!' + fd);
        })
        .catch((err) => {
            console.info('File err!' + err);
        });
P
panqiangbiao 已提交
934
}
P
panqiangbiao 已提交
935 936
```

P
panqiangbiao 已提交
937
### close<sup>8+</sup>
P
panqiangbiao 已提交
938

P
panqiangbiao 已提交
939
close(fd: number, callback: AsyncCallback&lt;void&gt;): void
P
panqiangbiao 已提交
940 941 942

关闭当前文件,使用callback方式返回异步结果。

P
panqiangbiao 已提交
943
**需要权限**:ohos.permission.READ_MEDIA('r'模式打开),ohos.permission.WRITE_MEDIA('w'模式打开)
P
panqiangbiao 已提交
944

P
panqiangbiao 已提交
945
**系统能力**:SystemCapability.Multimedia.MediaLibrary.Core
P
panqiangbiao 已提交
946

P
panqiangbiao 已提交
947 948 949 950
**参数:**

| 参数名   | 类型                   | 必填 | 说明                 |
| -------- | ---------------------- | ---- | -------------------- |
P
panqiangbiao 已提交
951
| fd       | number                 | 是   | 文件描述符          |
P
panqiangbiao 已提交
952 953 954 955 956
| callback | AsyncCallback&lt;void&gt; | 是   | 回调返回空 |

**示例:**

```
P
panqiangbiao 已提交
957
async function example() {
P
panqiangbiao 已提交
958 959 960 961
    let imageType = mediaLibrary.MediaType.IMAGE;
    let getImageOp = {
      selections: fileKeyObj.MEDIA_TYPE + '= ?',
      selectionArgs: [imageType.toString()],
P
panqiangbiao 已提交
962 963
      order: fileKeyObj.DATE_ADDED + " DESC",
      extendArgs: "",
P
panqiangbiao 已提交
964 965 966 967 968
    };
    const fetchFileResult = await media.getFileAssets(getImageOp);
    const asset = await fetchFileResult.getFirstObject();
    asset.close(fd, (closeErr) => {
        if (closeErr != undefined) {
P
panqiangbiao 已提交
969 970
            console.info('mediaLibraryTest : close : FAIL ' + closeErr.message);
            console.info('mediaLibraryTest : ASSET_CALLBACK : FAIL');
P
panqiangbiao 已提交
971 972 973 974 975
        } else {
            console.info("=======asset.close success====>");
        }
    });
}
P
panqiangbiao 已提交
976 977
```

P
panqiangbiao 已提交
978
### close<sup>8+</sup>
P
panqiangbiao 已提交
979

P
panqiangbiao 已提交
980
close(fd: number): Promise&lt;void&gt;
P
panqiangbiao 已提交
981 982 983

关闭当前文件,使用promise方式返回异步结果。

P
panqiangbiao 已提交
984
**需要权限**:ohos.permission.READ_MEDIA('r'模式打开),ohos.permission.WRITE_MEDIA('w'模式打开)
P
panqiangbiao 已提交
985

P
panqiangbiao 已提交
986
**系统能力**:SystemCapability.Multimedia.MediaLibrary.Core
P
panqiangbiao 已提交
987

P
panqiangbiao 已提交
988 989 990 991 992 993 994 995 996 997
**参数:**

| 参数名 | 类型   | 必填 | 说明       |
| ------ | ------ | ---- | ---------- |
| fd     | number | 是   | 文件描述符 |

**返回值:**

| 类型          | 说明                          |
| ------------- | ----------------------------- |
P
panqiangbiao 已提交
998
| Promise&lt;void&gt; | Promise返回空 |
P
panqiangbiao 已提交
999 1000 1001 1002

**示例:**

```
P
panqiangbiao 已提交
1003
async function example() {
P
panqiangbiao 已提交
1004 1005 1006 1007
    let imageType = mediaLibrary.MediaType.IMAGE;
    let getImageOp = {
      selections: fileKeyObj.MEDIA_TYPE + '= ?',
      selectionArgs: [imageType.toString()],
P
panqiangbiao 已提交
1008 1009
      order: fileKeyObj.DATE_ADDED + " DESC",
      extendArgs: "",
P
panqiangbiao 已提交
1010 1011 1012 1013 1014
    };
    const fetchFileResult = await media.getFileAssets(getImageOp);
    const asset = await fetchFileResult.getFirstObject();
    asset.close(fd).then((closeErr) => {
        if (closeErr != undefined) {
P
panqiangbiao 已提交
1015 1016
            console.info('mediaLibraryTest : close : FAIL ' + closeErr.message);
            console.info('mediaLibraryTest : ASSET_CALLBACK : FAIL');
P
panqiangbiao 已提交
1017 1018 1019 1020 1021 1022

        } else {
            console.info("=======asset.close success====>");
        }
    });
}
P
panqiangbiao 已提交
1023 1024
```

P
panqiangbiao 已提交
1025
### getThumbnail<sup>8+</sup>
P
panqiangbiao 已提交
1026

P
panqiangbiao 已提交
1027
getThumbnail(callback: AsyncCallback&lt;image.PixelMap&gt;): void
P
panqiangbiao 已提交
1028 1029 1030

获取文件的缩略图,使用callback方式返回异步结果。

P
panqiangbiao 已提交
1031
**需要权限**:ohos.permission.READ_MEDIA
P
panqiangbiao 已提交
1032

P
panqiangbiao 已提交
1033
**系统能力**:SystemCapability.Multimedia.MediaLibrary.Core
P
panqiangbiao 已提交
1034

P
panqiangbiao 已提交
1035 1036 1037 1038 1039 1040 1041 1042 1043
**参数:**

| 参数名   | 类型                   | 必填 | 说明                 |
| -------- | ---------------------- | ---- | -------------------- |
| callback | AsyncCallback&lt;image.PixelMap&gt; | 是   | 回调返回缩略图的PixelMap |

**示例:**

```
P
panqiangbiao 已提交
1044
async function example() {
P
panqiangbiao 已提交
1045 1046 1047 1048
    let imageType = mediaLibrary.MediaType.IMAGE;
    let getImageOp = {
      selections: fileKeyObj.MEDIA_TYPE + '= ?',
      selectionArgs: [imageType.toString()],
P
panqiangbiao 已提交
1049 1050
      order: fileKeyObj.DATE_ADDED + " DESC",
      extendArgs: "",
P
panqiangbiao 已提交
1051 1052 1053 1054
    };
    const fetchFileResult = await media.getFileAssets(getImageOp);
    const asset = await fetchFileResult.getFirstObject();
    asset.getThumbnail((err, pixelmap) => {
P
panqiangbiao 已提交
1055
        console.info('mediaLibraryTest : getThumbnail Successfull '+ pixelmap);
P
panqiangbiao 已提交
1056 1057
    });
}
P
panqiangbiao 已提交
1058 1059
```

P
panqiangbiao 已提交
1060
### getThumbnail<sup>8+</sup>
P
panqiangbiao 已提交
1061

P
panqiangbiao 已提交
1062
getThumbnail(size: Size, callback: AsyncCallback&lt;image.PixelMap&gt;): void
P
panqiangbiao 已提交
1063 1064 1065

获取文件的缩略图,传入缩略图尺寸,使用callback方式返回异步结果。

P
panqiangbiao 已提交
1066
**需要权限**:ohos.permission.READ_MEDIA
P
panqiangbiao 已提交
1067

P
panqiangbiao 已提交
1068
**系统能力**:SystemCapability.Multimedia.MediaLibrary.Core
P
panqiangbiao 已提交
1069

P
panqiangbiao 已提交
1070 1071 1072 1073
**参数:**

| 参数名   | 类型                   | 必填 | 说明                 |
| -------- | ---------------------- | ---- | -------------------- |
P
panqiangbiao 已提交
1074
| size     | [Size](#size8)        | 是   | 缩略图尺寸          |
P
panqiangbiao 已提交
1075 1076 1077 1078 1079
| callback | AsyncCallback&lt;image.PixelMap&gt; | 是   | 回调返回缩略图的PixelMap |

**示例:**

```
P
panqiangbiao 已提交
1080
async function example() {
P
panqiangbiao 已提交
1081 1082 1083 1084
    let imageType = mediaLibrary.MediaType.IMAGE;
    let getImageOp = {
      selections: fileKeyObj.MEDIA_TYPE + '= ?',
      selectionArgs: [imageType.toString()],
P
panqiangbiao 已提交
1085 1086
      order: fileKeyObj.DATE_ADDED + " DESC",
      extendArgs: "",
P
panqiangbiao 已提交
1087 1088 1089 1090
    };
    const fetchFileResult = await media.getFileAssets(getImageOp);
    const asset = await fetchFileResult.getFirstObject();
    asset.getThumbnail(size, (err, pixelmap) => {
P
panqiangbiao 已提交
1091
        console.info('mediaLibraryTest : getThumbnail Successfull '+ pixelmap);
P
panqiangbiao 已提交
1092 1093
    });
}
P
panqiangbiao 已提交
1094 1095
```

P
panqiangbiao 已提交
1096
### getThumbnail<sup>8+</sup>
P
panqiangbiao 已提交
1097

P
panqiangbiao 已提交
1098
getThumbnail(size?: Size): Promise&lt;image.PixelMap&gt;
P
panqiangbiao 已提交
1099 1100 1101

获取文件的缩略图,传入缩略图尺寸,使用promise方式返回异步结果。

P
panqiangbiao 已提交
1102
**需要权限**:ohos.permission.READ_MEDIA
P
panqiangbiao 已提交
1103

P
panqiangbiao 已提交
1104
**系统能力**:SystemCapability.Multimedia.MediaLibrary.Core
P
panqiangbiao 已提交
1105

P
panqiangbiao 已提交
1106 1107
**参数:**

P
panqiangbiao 已提交
1108 1109 1110
| 参数名 | 类型           | 必填 | 说明       |
| ------ | -------------- | ---- | ---------- |
| size   | [Size](#size8) | 否   | 缩略图尺寸 |
P
panqiangbiao 已提交
1111 1112 1113 1114 1115

**返回值:**

| 类型          | 说明                          |
| ------------- | ----------------------------- |
P
panqiangbiao 已提交
1116
| Promise&lt;image.PixelMap&gt; | Promise返回缩略图的PixelMap |
P
panqiangbiao 已提交
1117 1118 1119 1120

**示例:**

```
P
panqiangbiao 已提交
1121
async function example() {
P
panqiangbiao 已提交
1122 1123 1124 1125
    let imageType = mediaLibrary.MediaType.IMAGE;
    let getImageOp = {
      selections: fileKeyObj.MEDIA_TYPE + '= ?',
      selectionArgs: [imageType.toString()],
P
panqiangbiao 已提交
1126 1127
      order: fileKeyObj.DATE_ADDED + " DESC",
      extendArgs: "",
P
panqiangbiao 已提交
1128 1129 1130 1131
    };
    const fetchFileResult = await media.getFileAssets(getImageOp);
    const asset = await fetchFileResult.getFirstObject();
    asset.getThumbnail(size, (err, pixelmap) => {
P
panqiangbiao 已提交
1132
        console.info('mediaLibraryTest : getThumbnail Successfull '+ pixelmap);
P
panqiangbiao 已提交
1133 1134
    });
}
P
panqiangbiao 已提交
1135 1136
```

P
panqiangbiao 已提交
1137
### favorite<sup>8+</sup>
P
panqiangbiao 已提交
1138

P
panqiangbiao 已提交
1139
favorite(isFavorite: boolean, callback: AsyncCallback&lt;void&gt;): void
P
panqiangbiao 已提交
1140 1141 1142

将文件设置为收藏文件,使用callback方式返回异步结果。

P
panqiangbiao 已提交
1143
**需要权限**:ohos.permission.READ_MEDIA, ohos.permission.WRITE_MEDIA
P
panqiangbiao 已提交
1144

P
panqiangbiao 已提交
1145
**系统能力**:SystemCapability.Multimedia.MediaLibrary.Core
P
panqiangbiao 已提交
1146

P
panqiangbiao 已提交
1147 1148 1149 1150
**参数:**

| 参数名     | 类型                | 必填 | 说明           |
| ---------- | ------------------- | ---- | -------------- |
P
panqiangbiao 已提交
1151
| isFavorite | boolean             | 是   | 是否设置为收藏文件, true:设置为收藏文件,false:取消收藏 |
P
panqiangbiao 已提交
1152
| callback   | AsyncCallback&lt;void&gt; | 是   | 回调返回空    |
P
panqiangbiao 已提交
1153 1154 1155 1156

**示例:**

```
P
panqiangbiao 已提交
1157
async function example() {
P
panqiangbiao 已提交
1158 1159 1160 1161
    let imageType = mediaLibrary.MediaType.IMAGE;
    let getImageOp = {
      selections: fileKeyObj.MEDIA_TYPE + '= ?',
      selectionArgs: [imageType.toString()],
P
panqiangbiao 已提交
1162 1163
      order: fileKeyObj.DATE_ADDED + " DESC",
      extendArgs: "",
P
panqiangbiao 已提交
1164 1165 1166 1167 1168 1169 1170
    };
    const fetchFileResult = await media.getFileAssets(getImageOp);
    const asset = await fetchFileResult.getFirstObject();
    asset.favorite(true,function(err){
        // do something
    });
}
P
panqiangbiao 已提交
1171 1172
```

P
panqiangbiao 已提交
1173
### favorite<sup>8+</sup>
P
panqiangbiao 已提交
1174

P
panqiangbiao 已提交
1175
favorite(isFavorite: boolean): Promise&lt;void&gt;
P
panqiangbiao 已提交
1176 1177 1178

将文件设置为收藏文件,使用promise方式返回异步结果。

P
panqiangbiao 已提交
1179
**需要权限**:ohos.permission.READ_MEDIA, ohos.permission.WRITE_MEDIA
P
panqiangbiao 已提交
1180

P
panqiangbiao 已提交
1181
**系统能力**:SystemCapability.Multimedia.MediaLibrary.Core
P
panqiangbiao 已提交
1182

P
panqiangbiao 已提交
1183 1184
**参数:**

P
panqiangbiao 已提交
1185 1186 1187
| 参数名     | 类型    | 必填 | 说明                                                       |
| ---------- | ------- | ---- | ---------------------------------------------------------- |
| isFavorite | boolean | 是   | 是否设置为收藏文件, true:设置为收藏文件,false:取消收藏 |
P
panqiangbiao 已提交
1188 1189 1190 1191 1192

**返回值:**

| 类型          | 说明                          |
| ------------- | ----------------------------- |
P
panqiangbiao 已提交
1193
| Promise&lt;void&gt; | Promise返回空 |
P
panqiangbiao 已提交
1194 1195 1196 1197

**示例:**

```
P
panqiangbiao 已提交
1198
async function example() {
P
panqiangbiao 已提交
1199 1200 1201 1202
    let imageType = mediaLibrary.MediaType.IMAGE;
    let getImageOp = {
      selections: fileKeyObj.MEDIA_TYPE + '= ?',
      selectionArgs: [imageType.toString()],
P
panqiangbiao 已提交
1203 1204
      order: fileKeyObj.DATE_ADDED + " DESC",
      extendArgs: "",
P
panqiangbiao 已提交
1205 1206 1207 1208 1209 1210 1211 1212 1213
    };
    const fetchFileResult = await media.getFileAssets(getImageOp);
    const asset = await fetchFileResult.getFirstObject();
    asset.favorite(true).then(function() {
        console.info("favorite successfully");
    }).catch(function(err){
        console.info("favorite failed with error:"+ err);
    });
}
P
panqiangbiao 已提交
1214 1215
```

P
panqiangbiao 已提交
1216
### isFavorite<sup>8+</sup>
P
panqiangbiao 已提交
1217

P
panqiangbiao 已提交
1218
isFavorite(callback: AsyncCallback&lt;boolean&gt;): void
P
panqiangbiao 已提交
1219 1220 1221

判断该文件是否为收藏文件,使用callback方式返回异步结果。

P
panqiangbiao 已提交
1222
**需要权限**:ohos.permission.READ_MEDIA
P
panqiangbiao 已提交
1223

P
panqiangbiao 已提交
1224
**系统能力**:SystemCapability.Multimedia.MediaLibrary.Core
P
panqiangbiao 已提交
1225

P
panqiangbiao 已提交
1226 1227 1228 1229 1230 1231 1232 1233 1234
**参数:**

| 参数名   | 类型                   | 必填 | 说明                   |
| -------- | ---------------------- | ---- | ---------------------- |
| callback | AsyncCallback&lt;boolean&gt; | 是   | 回调表示是否为收藏文件 |

**示例:**

```
P
panqiangbiao 已提交
1235
async function example() {
P
panqiangbiao 已提交
1236 1237 1238 1239
    let imageType = mediaLibrary.MediaType.IMAGE;
    let getImageOp = {
      selections: fileKeyObj.MEDIA_TYPE + '= ?',
      selectionArgs: [imageType.toString()],
P
panqiangbiao 已提交
1240 1241
      order: fileKeyObj.DATE_ADDED + " DESC",
      extendArgs: "",
P
panqiangbiao 已提交
1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252
    };
    const fetchFileResult = await media.getFileAssets(getImageOp);
    const asset = await fetchFileResult.getFirstObject();
    asset.isFavorite((err, isFavorite) => {
        if (isFavorite) {
            console.info('FileAsset is favorite');
        }else{
            console.info('FileAsset is not favorite');
        }
    });
}
P
panqiangbiao 已提交
1253 1254
```

P
panqiangbiao 已提交
1255
### isFavorite<sup>8+</sup>
P
panqiangbiao 已提交
1256

P
panqiangbiao 已提交
1257
isFavorite():Promise&lt;boolean&gt;
P
panqiangbiao 已提交
1258 1259 1260

判断该文件是否为收藏文件,使用promise方式返回异步结果。

P
panqiangbiao 已提交
1261
**需要权限**:ohos.permission.READ_MEDIA
P
panqiangbiao 已提交
1262

P
panqiangbiao 已提交
1263
**系统能力**:SystemCapability.Multimedia.MediaLibrary.Core
P
panqiangbiao 已提交
1264

P
panqiangbiao 已提交
1265 1266 1267 1268
**返回值:**

| 类型          | 说明                          |
| ------------- | ----------------------------- |
P
panqiangbiao 已提交
1269
| Promise&lt;boolean&gt; | Promise回调表示是否是收藏文件 |
P
panqiangbiao 已提交
1270 1271 1272 1273

**示例:**

```
P
panqiangbiao 已提交
1274
async function example() {
P
panqiangbiao 已提交
1275 1276 1277 1278
    let imageType = mediaLibrary.MediaType.IMAGE;
    let getImageOp = {
      selections: fileKeyObj.MEDIA_TYPE + '= ?',
      selectionArgs: [imageType.toString()],
P
panqiangbiao 已提交
1279 1280
      order: fileKeyObj.DATE_ADDED + " DESC",
      extendArgs: "",
P
panqiangbiao 已提交
1281 1282 1283 1284 1285 1286 1287 1288 1289
    };
    const fetchFileResult = await media.getFileAssets(getImageOp);
    const asset = await fetchFileResult.getFirstObject();
    asset.isFavorite().then(function(isFavorite){
        console.info("isFavorite result:"+ isFavorite);
    }).catch(function(err){
        console.info("isFavorite failed with error:"+ err);
    });
}
P
panqiangbiao 已提交
1290 1291
```

P
panqiangbiao 已提交
1292
### trash<sup>8+</sup>
P
panqiangbiao 已提交
1293

A
AOL 已提交
1294
trash(isTrash: boolean, callback: AsyncCallback&lt;void&gt;): void
P
panqiangbiao 已提交
1295 1296 1297

当文件被定位时,将文件放到垃圾文件夹,使用callback方式返回异步结果。

P
panqiangbiao 已提交
1298 1299
放入垃圾文件夹的文件不会被真正删除,可以通过isTrash = false参数恢复成正常文件。

P
panqiangbiao 已提交
1300
**需要权限**:ohos.permission.READ_MEDIA, ohos.permission.WRITE_MEDIA
P
panqiangbiao 已提交
1301

P
panqiangbiao 已提交
1302
**系统能力**:SystemCapability.Multimedia.MediaLibrary.Core
P
panqiangbiao 已提交
1303

P
panqiangbiao 已提交
1304 1305 1306 1307
**参数:**

| 参数名   | 类型                   | 必填 | 说明                 |
| -------- | ---------------------- | ---- | -------------------- |
P
panqiangbiao 已提交
1308
| isTrash  | boolean                | 是   | 是否设置为垃圾文件    |
P
panqiangbiao 已提交
1309 1310 1311 1312 1313
| callback | AsyncCallback&lt;void&gt; | 是   | 回调返回空 |

**示例:**

```
P
panqiangbiao 已提交
1314
async function example() {
P
panqiangbiao 已提交
1315 1316 1317 1318
    let imageType = mediaLibrary.MediaType.IMAGE;
    let getImageOp = {
      selections: fileKeyObj.MEDIA_TYPE + '= ?',
      selectionArgs: [imageType.toString()],
P
panqiangbiao 已提交
1319 1320
      order: fileKeyObj.DATE_ADDED + " DESC",
      extendArgs: "",
P
panqiangbiao 已提交
1321 1322 1323 1324 1325
    };
    const fetchFileResult = await media.getFileAssets(getImageOp);
    const asset = await fetchFileResult.getFirstObject();
    asset.trash(true, trashCallBack);
    function trashCallBack(err, trash) {
P
panqiangbiao 已提交
1326
        console.info('mediaLibraryTest : ASSET_CALLBACK ASSET_CALLBACK trash');
P
panqiangbiao 已提交
1327
    }
P
panqiangbiao 已提交
1328
}
P
panqiangbiao 已提交
1329 1330
```

P
panqiangbiao 已提交
1331
### trash<sup>8+</sup>
P
panqiangbiao 已提交
1332

A
AOL 已提交
1333
trash(isTrash: boolean): Promise&lt;void&gt;
P
panqiangbiao 已提交
1334 1335 1336

当文件被定位时,将文件放到垃圾文件夹,使用promise方式返回异步结果。

P
panqiangbiao 已提交
1337 1338
放入垃圾文件夹的文件不会被真正删除,可以通过isTrash = false参数恢复成正常文件。

P
panqiangbiao 已提交
1339
**需要权限**:ohos.permission.READ_MEDIA, ohos.permission.WRITE_MEDIA
P
panqiangbiao 已提交
1340

P
panqiangbiao 已提交
1341
**系统能力**:SystemCapability.Multimedia.MediaLibrary.Core
P
panqiangbiao 已提交
1342

P
panqiangbiao 已提交
1343 1344
**参数:**

P
panqiangbiao 已提交
1345 1346 1347
| 参数名  | 类型    | 必填 | 说明               |
| ------- | ------- | ---- | ------------------ |
| isTrash | boolean | 是   | 是否设置为垃圾文件 |
P
panqiangbiao 已提交
1348 1349 1350 1351 1352

**返回值:**

| 类型          | 说明                          |
| ------------- | ----------------------------- |
P
panqiangbiao 已提交
1353
| Promise&lt;void&gt; | Promise返回空 |
P
panqiangbiao 已提交
1354 1355 1356 1357

**示例:**

```
P
panqiangbiao 已提交
1358
async function example() {
P
panqiangbiao 已提交
1359 1360 1361 1362
    let imageType = mediaLibrary.MediaType.IMAGE;
    let getImageOp = {
      selections: fileKeyObj.MEDIA_TYPE + '= ?',
      selectionArgs: [imageType.toString()],
P
panqiangbiao 已提交
1363 1364
      order: fileKeyObj.DATE_ADDED + " DESC",
      extendArgs: "",
P
panqiangbiao 已提交
1365 1366 1367 1368 1369 1370 1371 1372 1373
    };
    const fetchFileResult = await media.getFileAssets(getImageOp);
    const asset = await fetchFileResult.getFirstObject();
    asset.trash(true).then(function() {
        console.info("trash successfully");
    }).catch(function(err){
        console.info("trash failed with error:"+ err);
    });
}
P
panqiangbiao 已提交
1374 1375
```

P
panqiangbiao 已提交
1376
### isTrash<sup>8+</sup>
P
panqiangbiao 已提交
1377

P
panqiangbiao 已提交
1378
isTrash(callback: AsyncCallback&lt;boolean&gt;): void
P
panqiangbiao 已提交
1379 1380 1381

当文件被定位,判断文件是否为垃圾文件,使用callback方式返回异步结果。

P
panqiangbiao 已提交
1382
**需要权限**:ohos.permission.READ_MEDIA
P
panqiangbiao 已提交
1383

P
panqiangbiao 已提交
1384
**系统能力**:SystemCapability.Multimedia.MediaLibrary.Core
P
panqiangbiao 已提交
1385

P
panqiangbiao 已提交
1386 1387 1388 1389 1390 1391 1392 1393 1394
**参数:**

| 参数名   | 类型                   | 必填 | 说明                 |
| -------- | ---------------------- | ---- | -------------------- |
| callback | AsyncCallback&lt;boolean&gt; | 是   | 回调返回表示文件是否为垃圾文件 |

**示例:**

```
P
panqiangbiao 已提交
1395
async function example() {
P
panqiangbiao 已提交
1396 1397 1398 1399
    let imageType = mediaLibrary.MediaType.IMAGE;
    let getImageOp = {
      selections: fileKeyObj.MEDIA_TYPE + '= ?',
      selectionArgs: [imageType.toString()],
P
panqiangbiao 已提交
1400 1401
      order: fileKeyObj.DATE_ADDED + " DESC",
      extendArgs: "",
P
panqiangbiao 已提交
1402 1403 1404 1405 1406 1407
    };
    const fetchFileResult = await media.getFileAssets(getImageOp);
    const asset = await fetchFileResult.getFirstObject();
    asset.isTrash(isTrashCallBack);
    function isTrashCallBack(err, isTrash) {
            if (isTrash == true) {
P
panqiangbiao 已提交
1408
                console.info('mediaLibraryTest : ASSET_CALLBACK ASSET_CALLBACK isTrash = ' + isTrash);
P
panqiangbiao 已提交
1409 1410 1411
                asset.trash(true, trashCallBack);

            } else {
P
panqiangbiao 已提交
1412 1413
                console.info('mediaLibraryTest : ASSET_CALLBACK isTrash Unsuccessfull = ' + err);
                console.info('mediaLibraryTest : ASSET_CALLBACK isTrash : FAIL');
P
panqiangbiao 已提交
1414 1415

            }
P
panqiangbiao 已提交
1416
    }
P
panqiangbiao 已提交
1417
}
P
panqiangbiao 已提交
1418 1419
```

P
panqiangbiao 已提交
1420
### isTrash<sup>8+</sup>
P
panqiangbiao 已提交
1421

P
panqiangbiao 已提交
1422
isTrash():Promise&lt;boolean&gt;
P
panqiangbiao 已提交
1423

P
panqiangbiao 已提交
1424
当文件被定位,判断文件是否为垃圾文件,使用promise方式返回异步结果。
P
panqiangbiao 已提交
1425

P
panqiangbiao 已提交
1426
**需要权限**:ohos.permission.READ_MEDIA
P
panqiangbiao 已提交
1427

P
panqiangbiao 已提交
1428
**系统能力**:SystemCapability.Multimedia.MediaLibrary.Core
P
panqiangbiao 已提交
1429

P
panqiangbiao 已提交
1430 1431 1432 1433
**返回值:**

| 类型          | 说明                          |
| ------------- | ----------------------------- |
P
panqiangbiao 已提交
1434
| Promise&lt;void&gt; | Promise回调表示文件是否为垃圾文件 |
P
panqiangbiao 已提交
1435 1436 1437 1438

**示例:**

```
P
panqiangbiao 已提交
1439
async function example() {
P
panqiangbiao 已提交
1440 1441 1442 1443
    let imageType = mediaLibrary.MediaType.IMAGE;
    let getImageOp = {
      selections: fileKeyObj.MEDIA_TYPE + '= ?',
      selectionArgs: [imageType.toString()],
P
panqiangbiao 已提交
1444 1445
      order: fileKeyObj.DATE_ADDED + " DESC",
      extendArgs: "",
P
panqiangbiao 已提交
1446 1447 1448 1449 1450 1451 1452 1453 1454
    };
    const fetchFileResult = await media.getFileAssets(getImageOp);
    const asset = await fetchFileResult.getFirstObject();
    asset.isTrash().then(function(isTrash){
        console.info("isTrash result:"+ isTrash);
    }).catch(function(err){
        console.info("isTrash failed with error:"+ err);
    });
}
P
panqiangbiao 已提交
1455 1456
```

P
panqiangbiao 已提交
1457
## FetchFileResult<sup>8+</sup>
P
panqiangbiao 已提交
1458 1459 1460

文件检索结果集。

P
panqiangbiao 已提交
1461
### getCount<sup>8+</sup>
P
panqiangbiao 已提交
1462

P
panqiangbiao 已提交
1463
getCount(): number
P
panqiangbiao 已提交
1464 1465 1466

获取文件检索结果中的文件总数。

P
panqiangbiao 已提交
1467
**系统能力**:SystemCapability.Multimedia.MediaLibrary.Core
P
panqiangbiao 已提交
1468

P
panqiangbiao 已提交
1469 1470
**返回值**

P
panqiangbiao 已提交
1471 1472 1473
| 类型   | 说明             |
| ------ | ---------------- |
| number | 检索到的文件总数 |
P
panqiangbiao 已提交
1474 1475 1476 1477

**示例**

```
P
panqiangbiao 已提交
1478
async function example() {
P
panqiangbiao 已提交
1479 1480 1481
    let getFileCountOneOp = {
        selections: fileKeyObj.MEDIA_TYPE + '= ?',
        selectionArgs: [fileType.toString()],
P
panqiangbiao 已提交
1482 1483
        order: fileKeyObj.DATE_ADDED + " DESC",
        extendArgs: "",
P
panqiangbiao 已提交
1484 1485 1486 1487
    };
    let fetchFileResult = await media.getFileAssets(getFileCountOneOp);
    const fetchCount = fetchFileResult.getCount();
}
P
panqiangbiao 已提交
1488 1489
```

P
panqiangbiao 已提交
1490
### isAfterLast<sup>8+</sup>
P
panqiangbiao 已提交
1491

P
panqiangbiao 已提交
1492
isAfterLast(): boolean
P
panqiangbiao 已提交
1493 1494 1495

检查结果集是否指向最后一行。

P
panqiangbiao 已提交
1496
**系统能力**:SystemCapability.Multimedia.MediaLibrary.Core
P
panqiangbiao 已提交
1497

P
panqiangbiao 已提交
1498 1499
**返回值**

P
panqiangbiao 已提交
1500 1501 1502
| 类型    | 说明                                                        |
| ------- | ----------------------------------------------------------- |
| boolean | 当读到最后一条记录后,后续没有记录返回true,否则返回false。 |
P
panqiangbiao 已提交
1503 1504 1505 1506

**示例**

```
P
panqiangbiao 已提交
1507
async function example() {
P
panqiangbiao 已提交
1508 1509 1510 1511
    let imageType = mediaLibrary.MediaType.IMAGE;
    let getImageOp = {
      selections: fileKeyObj.MEDIA_TYPE + '= ?',
      selectionArgs: [imageType.toString()],
P
panqiangbiao 已提交
1512 1513
      order: fileKeyObj.DATE_ADDED + " DESC",
      extendArgs: "",
P
panqiangbiao 已提交
1514 1515 1516
    };
    let fetchFileResult = await media.getFileAssets(getImageOp);
    const fetchCount = fetchFileResult.getCount();
P
panqiangbiao 已提交
1517
    console.info('mediaLibraryTest : count:' + fetchCount);
P
panqiangbiao 已提交
1518 1519 1520 1521
    let fileAsset = await fetchFileResult.getFirstObject();
    for (var i = 1; i < fetchCount; i++) {
            fileAsset = await fetchFileResult.getNextObject();
            if(i == fetchCount - 1) {
P
panqiangbiao 已提交
1522
              console.info('mediaLibraryTest : isLast');
P
panqiangbiao 已提交
1523
              var result = fetchFileResult.isAfterLast();
P
panqiangbiao 已提交
1524 1525
              console.info('mediaLibraryTest : isAfterLast:' + result);
              console.info('mediaLibraryTest : isAfterLast end');
P
panqiangbiao 已提交
1526
              fetchFileResult.close();
P
panqiangbiao 已提交
1527

P
panqiangbiao 已提交
1528 1529
            }
    }
P
panqiangbiao 已提交
1530
}
P
panqiangbiao 已提交
1531 1532
```

P
panqiangbiao 已提交
1533
### close<sup>8+</sup>
P
panqiangbiao 已提交
1534

P
panqiangbiao 已提交
1535
close(): void
P
panqiangbiao 已提交
1536 1537 1538

释放 FetchFileResult 实例并使其失效。无法调用其他方法。

P
panqiangbiao 已提交
1539
**系统能力**:SystemCapability.Multimedia.MediaLibrary.Core
P
panqiangbiao 已提交
1540

P
panqiangbiao 已提交
1541 1542 1543
**示例**

```
P
panqiangbiao 已提交
1544
async function example() {
P
panqiangbiao 已提交
1545 1546 1547 1548
    let imageType = mediaLibrary.MediaType.IMAGE;
    let getImageOp = {
      selections: fileKeyObj.MEDIA_TYPE + '= ?',
      selectionArgs: [imageType.toString()],
P
panqiangbiao 已提交
1549 1550
      order: fileKeyObj.DATE_ADDED + " DESC",
      extendArgs: "",
P
panqiangbiao 已提交
1551 1552 1553 1554
    };
    let fetchFileResult = await media.getFileAssets(getImageOp);
    fetchFileResult.close();
}
P
panqiangbiao 已提交
1555 1556
```

P
panqiangbiao 已提交
1557
### getFirstObject<sup>8+</sup>
P
panqiangbiao 已提交
1558

P
panqiangbiao 已提交
1559
getFirstObject(callback: AsyncCallback&lt;FileAsset&gt;): void
P
panqiangbiao 已提交
1560 1561 1562

获取文件检索结果中的第一个文件资产。此方法使用回调返回FileAsset。

P
panqiangbiao 已提交
1563
**系统能力**:SystemCapability.Multimedia.MediaLibrary.Core
P
panqiangbiao 已提交
1564

P
panqiangbiao 已提交
1565 1566
**参数**

P
panqiangbiao 已提交
1567 1568 1569
| 参数名   | 类型                                          | 必填 | 说明                                        |
| -------- | --------------------------------------------- | ---- | ------------------------------------------- |
| callback | AsyncCallback&lt;[FileAsset](#fileasset8)&gt; | 是   | 异步获取结果集中第一个FileAsset完成后的回调 |
P
panqiangbiao 已提交
1570 1571 1572 1573

**示例**

```
P
panqiangbiao 已提交
1574
async function example() {
P
panqiangbiao 已提交
1575 1576 1577 1578
    let imageType = mediaLibrary.MediaType.IMAGE;
    let getImageOp = {
      selections: fileKeyObj.MEDIA_TYPE + '= ?',
      selectionArgs: [imageType.toString()],
P
panqiangbiao 已提交
1579 1580
      order: fileKeyObj.DATE_ADDED + " DESC",
      extendArgs: "",
P
panqiangbiao 已提交
1581 1582 1583 1584 1585 1586 1587 1588 1589 1590
    };
    let fetchFileResult = await media.getFileAssets(getImageOp);
    fetchFileResult.getFirstObject((err, value) => {
       if (err) {
           console.error('Failed ');
           return;
       }
       console.log(value);
    })
}
P
panqiangbiao 已提交
1591 1592
```

P
panqiangbiao 已提交
1593
### getFirstObject<sup>8+</sup>
P
panqiangbiao 已提交
1594

P
panqiangbiao 已提交
1595
getFirstObject(): Promise&lt;FileAsset&gt;
P
panqiangbiao 已提交
1596 1597 1598

获取文件检索结果中的第一个文件资产。此方法使用返回FileAsset。

P
panqiangbiao 已提交
1599
**系统能力**:SystemCapability.Multimedia.MediaLibrary.Core
P
panqiangbiao 已提交
1600

P
panqiangbiao 已提交
1601 1602 1603 1604
**返回值**

| 类型                | 说明                                   |
| ------------------ | -------------------------------------- |
P
panqiangbiao 已提交
1605
| Promise&lt;[FileAsset](#fileasset8)&gt; | Promise方式返回FileAsset               |
P
panqiangbiao 已提交
1606 1607 1608 1609

**示例**

```
P
panqiangbiao 已提交
1610
async function example() {
P
panqiangbiao 已提交
1611 1612 1613 1614
    let imageType = mediaLibrary.MediaType.IMAGE;
    let getImageOp = {
      selections: fileKeyObj.MEDIA_TYPE + '= ?',
      selectionArgs: [imageType.toString()],
P
panqiangbiao 已提交
1615 1616
      order: fileKeyObj.DATE_ADDED + " DESC",
      extendArgs: "",
P
panqiangbiao 已提交
1617 1618 1619 1620 1621 1622 1623 1624
    };
    let fetchFileResult = await media.getFileAssets(getImageOp);
    fetchFileResult.getFirstObject().then(function(fileAsset){
        console.info("getFirstObject successfully:"+ JSON.stringify(fileAsset));
    }).catch(function(err){
        console.info("getFirstObject failed with error:"+ err);
    });
}
P
panqiangbiao 已提交
1625 1626
```

P
panqiangbiao 已提交
1627
### getNextObject<sup>8+</sup>
P
panqiangbiao 已提交
1628

P
panqiangbiao 已提交
1629
 getNextObject(callback: AsyncCallback&lt;FileAsset&gt;): void
P
panqiangbiao 已提交
1630 1631 1632

获取文件检索结果中的下一个文件资产。此方法使用callback形式返回结果。

P
panqiangbiao 已提交
1633
**需要权限**:ohos.permission.READ_MEDIA
P
panqiangbiao 已提交
1634

P
panqiangbiao 已提交
1635
**系统能力**:SystemCapability.Multimedia.MediaLibrary.Core
P
panqiangbiao 已提交
1636

P
panqiangbiao 已提交
1637 1638
**参数**

P
panqiangbiao 已提交
1639 1640 1641
| 参数名    | 类型                                          | 必填 | 说明                                      |
| --------- | --------------------------------------------- | ---- | ----------------------------------------- |
| callbacke | AsyncCallback&lt;[FileAsset](#fileasset8)&gt; | 是   | 异步返回结果集中下一个FileAsset之后的回调 |
P
panqiangbiao 已提交
1642 1643 1644 1645

**示例**

```
P
panqiangbiao 已提交
1646
async function example() {
P
panqiangbiao 已提交
1647 1648 1649 1650
    let imageType = mediaLibrary.MediaType.IMAGE;
    let getImageOp = {
      selections: fileKeyObj.MEDIA_TYPE + '= ?',
      selectionArgs: [imageType.toString()],
P
panqiangbiao 已提交
1651 1652
      order: fileKeyObj.DATE_ADDED + " DESC",
      extendArgs: "",
P
panqiangbiao 已提交
1653 1654 1655 1656 1657 1658 1659 1660 1661 1662
    };
    let fetchFileResult = await media.getFileAssets(getImageOp);
    fetchFileResult.getNextObject((err, value) => {
       if (err) {
           console.error('Failed ');
           return;
       }
       console.log(value);
    })
}
P
panqiangbiao 已提交
1663 1664
```

P
panqiangbiao 已提交
1665
### getNextObject<sup>8+</sup>
P
panqiangbiao 已提交
1666

P
panqiangbiao 已提交
1667
 getNextObject(): Promise&lt;FileAsset&gt;
P
panqiangbiao 已提交
1668 1669 1670

获取文件检索结果中的下一个文件资产。此方法使用promise方式来异步返回FileAsset。

P
panqiangbiao 已提交
1671
**需要权限**:ohos.permission.READ_MEDIA
P
panqiangbiao 已提交
1672

P
panqiangbiao 已提交
1673
**系统能力**:SystemCapability.Multimedia.MediaLibrary.Core
P
panqiangbiao 已提交
1674

P
panqiangbiao 已提交
1675 1676 1677 1678
**返回值**

| 类型                             | 说明                |
| -------------------------------- | ------------------- |
P
panqiangbiao 已提交
1679
| Promise&lt;[FileAsset](#fileasset8)&gt; | 返回FileAsset对象 |
P
panqiangbiao 已提交
1680 1681 1682 1683

**示例**

```
P
panqiangbiao 已提交
1684
async function example() {
P
panqiangbiao 已提交
1685 1686 1687 1688
    let imageType = mediaLibrary.MediaType.IMAGE;
    let getImageOp = {
      selections: fileKeyObj.MEDIA_TYPE + '= ?',
      selectionArgs: [imageType.toString()],
P
panqiangbiao 已提交
1689 1690
      order: fileKeyObj.DATE_ADDED + " DESC",
      extendArgs: "",
P
panqiangbiao 已提交
1691 1692 1693
    };
    let fetchFileResult = await media.getFileAssets(getImageOp);
    const fetchCount = fetchFileResult.getCount();
P
panqiangbiao 已提交
1694
    console.info('mediaLibraryTest : count:' + fetchCount);
P
panqiangbiao 已提交
1695 1696
    fileAsset = await fetchFileResult.getNextObject();
}
P
panqiangbiao 已提交
1697 1698
```

P
panqiangbiao 已提交
1699
### getLastObject<sup>8+</sup>
P
panqiangbiao 已提交
1700

P
panqiangbiao 已提交
1701
getLastObject(callback: AsyncCallback&lt;FileAsset&gt;): void
P
panqiangbiao 已提交
1702 1703 1704

获取文件检索结果中的最后一个文件资产。此方法使用callback回调来返回FileAsset。

P
panqiangbiao 已提交
1705
**系统能力**:SystemCapability.Multimedia.MediaLibrary.Core
P
panqiangbiao 已提交
1706

P
panqiangbiao 已提交
1707 1708
**参数**

P
panqiangbiao 已提交
1709 1710 1711
| 参数     | 类型                                          | 必填 | 说明                        |
| -------- | --------------------------------------------- | ---- | --------------------------- |
| callback | AsyncCallback&lt;[FileAsset](#fileasset8)&gt; | 是   | 异步返回FileAsset之后的回调 |
P
panqiangbiao 已提交
1712 1713 1714 1715

**示例**

```
P
panqiangbiao 已提交
1716
async function example() {
P
panqiangbiao 已提交
1717 1718 1719 1720
    let imageType = mediaLibrary.MediaType.IMAGE;
    let getImageOp = {
      selections: fileKeyObj.MEDIA_TYPE + '= ?',
      selectionArgs: [imageType.toString()],
P
panqiangbiao 已提交
1721 1722
      order: fileKeyObj.DATE_ADDED + " DESC",
      extendArgs: "",
P
panqiangbiao 已提交
1723 1724 1725 1726 1727 1728 1729 1730 1731 1732
    };
    let fetchFileResult = await media.getFileAssets(getImageOp);
    fetchFileResult.getLastObject((err, value) => {
       if (err) {
           console.error('Failed ');
           return;
       }
       console.log(value);
    })
}
P
panqiangbiao 已提交
1733 1734
```

P
panqiangbiao 已提交
1735
### getLastObject<sup>8+</sup>
P
panqiangbiao 已提交
1736

P
panqiangbiao 已提交
1737
getLastObject(): Promise&lt;FileAsset&gt;
P
panqiangbiao 已提交
1738 1739 1740

获取文件检索结果中的最后一个文件资产。此方法使用Promise方式来返回FileAsset。

P
panqiangbiao 已提交
1741
**系统能力**:SystemCapability.Multimedia.MediaLibrary.Core
P
panqiangbiao 已提交
1742

P
panqiangbiao 已提交
1743 1744 1745 1746
**返回值**

| 类型                             | 说明                |
| -------------------------------- | ------------------- |
P
panqiangbiao 已提交
1747
| Promise&lt;[FileAsset](#fileasset8)&gt; | 返回FileAsset对象 |
P
panqiangbiao 已提交
1748 1749 1750 1751

**示例**

```
P
panqiangbiao 已提交
1752
async function example() {
P
panqiangbiao 已提交
1753 1754 1755 1756
    let imageType = mediaLibrary.MediaType.IMAGE;
    let getImageOp = {
      selections: fileKeyObj.MEDIA_TYPE + '= ?',
      selectionArgs: [imageType.toString()],
P
panqiangbiao 已提交
1757 1758
      order: fileKeyObj.DATE_ADDED + " DESC",
      extendArgs: "",
P
panqiangbiao 已提交
1759 1760 1761 1762
    };
    let fetchFileResult = await media.getFileAssets(getImageOp);
    let lastObject = await fetchFileResult.getLastObject();
}
P
panqiangbiao 已提交
1763 1764
```

P
panqiangbiao 已提交
1765
### getPositionObject<sup>8+</sup>
P
panqiangbiao 已提交
1766

P
panqiangbiao 已提交
1767
getPositionObject(index: number, callback: AsyncCallback&lt;FileAsset&gt;): void
P
panqiangbiao 已提交
1768 1769 1770

获取文件检索结果中具有指定索引的文件资产。此方法使用回调来返回FileAsset。

P
panqiangbiao 已提交
1771
**系统能力**:SystemCapability.Multimedia.MediaLibrary.Core
P
panqiangbiao 已提交
1772

P
panqiangbiao 已提交
1773 1774
**参数**

P
panqiangbiao 已提交
1775 1776 1777 1778
| 参数     | 类型                                          | 必填 | 说明                        |
| -------- | --------------------------------------------- | ---- | --------------------------- |
| index    | number                                        | 是   | 要获取的文件的索引,从0开始 |
| callback | AsyncCallback&lt;[FileAsset](#fileasset8)&gt; | 是   | 异步返回FileAsset之后的回调 |
P
panqiangbiao 已提交
1779 1780 1781 1782

**示例**

```
P
panqiangbiao 已提交
1783
async function example() {
P
panqiangbiao 已提交
1784 1785 1786 1787
    let imageType = mediaLibrary.MediaType.IMAGE;
    let getImageOp = {
      selections: fileKeyObj.MEDIA_TYPE + '= ?',
      selectionArgs: [imageType.toString()],
P
panqiangbiao 已提交
1788 1789
      order: fileKeyObj.DATE_ADDED + " DESC",
      extendArgs: "",
P
panqiangbiao 已提交
1790 1791
    };
    let fetchFileResult = await media.getFileAssets(getImageOp);
P
panqiangbiao 已提交
1792
    fetchFileResult.getPositionObject(0, (err, value) => {
P
panqiangbiao 已提交
1793 1794 1795 1796 1797 1798 1799
       if (err) {
           console.error('Failed ');
           return;
       }
       console.log(value);
    })
}
P
panqiangbiao 已提交
1800 1801
```

P
panqiangbiao 已提交
1802
### getPositionObject<sup>8+</sup>
P
panqiangbiao 已提交
1803

P
panqiangbiao 已提交
1804
getPositionObject(index: number): Promise&lt;FileAsset&gt;
P
panqiangbiao 已提交
1805 1806 1807

获取文件检索结果中具有指定索引的文件资产。此方法使用Promise形式返回文件Asset。

P
panqiangbiao 已提交
1808
**需要权限**:ohos.permission.READ_MEDIA
P
panqiangbiao 已提交
1809

P
panqiangbiao 已提交
1810
**系统能力**:SystemCapability.Multimedia.MediaLibrary.Core
P
panqiangbiao 已提交
1811

P
panqiangbiao 已提交
1812 1813 1814 1815
**参数**

| 参数  | 类型   | 必填 | 说明                 |
| ----- | ------ | ---- | -------------------- |
P
panqiangbiao 已提交
1816
| index | number | 是   | 要获取的文件的索引,从0开始 |
P
panqiangbiao 已提交
1817 1818 1819 1820 1821

**返回值**

| 类型                             | 说明                |
| -------------------------------- | ------------------- |
P
panqiangbiao 已提交
1822
| Promise&lt;[FileAsset](#fileasset8)&gt; | 返回FileAsset对象 |
P
panqiangbiao 已提交
1823 1824 1825 1826

**示例**

```
P
panqiangbiao 已提交
1827
async function example() {
P
panqiangbiao 已提交
1828 1829 1830 1831
    let imageType = mediaLibrary.MediaType.IMAGE;
    let getImageOp = {
      selections: fileKeyObj.MEDIA_TYPE + '= ?',
      selectionArgs: [imageType.toString()],
P
panqiangbiao 已提交
1832 1833
      order: fileKeyObj.DATE_ADDED + " DESC",
      extendArgs: "",
P
panqiangbiao 已提交
1834 1835
    };
    let fetchFileResult = await media.getFileAssets(getImageOp);
P
panqiangbiao 已提交
1836
    fetchFileResult.getPositionObject(1, (err, value) => {
P
panqiangbiao 已提交
1837 1838 1839 1840 1841 1842 1843
       if (err) {
           console.error('Failed ');
           return;
       }
       console.log(value);
    })
}
P
panqiangbiao 已提交
1844 1845
```

P
panqiangbiao 已提交
1846
### getAllObject<sup>8+</sup>
P
panqiangbiao 已提交
1847

P
panqiangbiao 已提交
1848
getAllObject(callback: AsyncCallback&lt;Array&lt;FileAsset&gt;&gt;): void
P
panqiangbiao 已提交
1849 1850 1851

获取文件检索结果中的所有文件资产。此方法使用Callback回调来返回FileAsset结果集。

P
panqiangbiao 已提交
1852
**需要权限**:ohos.permission.READ_MEDIA
P
panqiangbiao 已提交
1853

P
panqiangbiao 已提交
1854
**系统能力**:SystemCapability.Multimedia.MediaLibrary.Core
P
panqiangbiao 已提交
1855

P
panqiangbiao 已提交
1856 1857
**参数**

P
panqiangbiao 已提交
1858 1859 1860
| 参数     | 类型                                           | 必填 | 说明                            |
| -------- | ---------------------------------------------- | ---- | ------------------------------- |
| callback | AsyncCallback<Array<[FileAsset](#fileasset8)>> | 是   | 异步返回FileAsset列表之后的回调 |
P
panqiangbiao 已提交
1861 1862 1863 1864

**示例**

```
P
panqiangbiao 已提交
1865
async function example() {
P
panqiangbiao 已提交
1866 1867 1868 1869
    let imageType = mediaLibrary.MediaType.IMAGE;
    let getImageOp = {
      selections: fileKeyObj.MEDIA_TYPE + '= ?',
      selectionArgs: [imageType.toString()],
P
panqiangbiao 已提交
1870 1871
      order: fileKeyObj.DATE_ADDED + " DESC",
      extendArgs: "",
P
panqiangbiao 已提交
1872 1873 1874 1875 1876 1877 1878 1879 1880 1881
    };
    let fetchFileResult = await media.getFileAssets(getImageOp);
    fetchFileResult.getAllObject((err, value) => {
       if (err) {
           console.error('Failed ');
           return;
       }
       console.log(value);
    })
}
P
panqiangbiao 已提交
1882 1883
```

P
panqiangbiao 已提交
1884
### getAllObject<sup>8+</sup>
P
panqiangbiao 已提交
1885

P
panqiangbiao 已提交
1886
getAllObject(): Promise&lt;Array&lt;FileAsset&gt;&gt;
P
panqiangbiao 已提交
1887 1888 1889

获取文件检索结果中的所有文件资产。此方法使用Promise来返回FileAsset结果集。

P
panqiangbiao 已提交
1890
**系统能力**:SystemCapability.Multimedia.MediaLibrary.Core
P
panqiangbiao 已提交
1891

P
panqiangbiao 已提交
1892 1893
**返回值**

P
panqiangbiao 已提交
1894 1895 1896
| 类型                                     | 说明                  |
| ---------------------------------------- | --------------------- |
| Promise<Array<[FileAsset](#fileasset8)>> | 返回FileAsset对象列表 |
P
panqiangbiao 已提交
1897 1898 1899 1900

**示例**

```
P
panqiangbiao 已提交
1901
async function example() {
P
panqiangbiao 已提交
1902 1903 1904 1905
    let imageType = mediaLibrary.MediaType.IMAGE;
    let getImageOp = {
      selections: fileKeyObj.MEDIA_TYPE + '= ?',
      selectionArgs: [imageType.toString()],
P
panqiangbiao 已提交
1906 1907
      order: fileKeyObj.DATE_ADDED + " DESC",
      extendArgs: "",
P
panqiangbiao 已提交
1908 1909 1910 1911
    };
    let fetchFileResult = await media.getFileAssets(getImageOp);
    var data = fetchFileResult.getAllObject();
}
P
panqiangbiao 已提交
1912 1913
```

P
panqiangbiao 已提交
1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928
## Album<sup>8+</sup>

实体相册

### **属性**

| 名称         | 参数型 | 可读 | 可写 | 说明           |
| ------------ | ------ | ---- | ---- | -------------- |
| albumId      | number | 是   | 否   | 相册编号       |
| albumName    | string | 是   | 是   | 相册名称       |
| albumUri     | string | 是   | 否   | 相册Uri        |
| dateModified | number | 是   | 否   | 修改日期       |
| count        | number | 是   | 否   | 相册中文件数量 |
| relativePath | string | 是   | 否   | 相对路径       |
| coverUri     | string | 是   | 否   | 封面文件Uri    |
P
panqiangbiao 已提交
1929

P
panqiangbiao 已提交
1930 1931 1932
### commitModify<sup>8+</sup>

commitModify(callback: AsyncCallback&lt;void&gt;): void
P
panqiangbiao 已提交
1933 1934 1935

更新相册属性修改到数据库中。

P
panqiangbiao 已提交
1936
**需要权限**:ohos.permission.READ_MEDIA, ohos.permission.WRITE_MEDIA
P
panqiangbiao 已提交
1937

P
panqiangbiao 已提交
1938
**系统能力**:SystemCapability.Multimedia.MediaLibrary.Core
P
panqiangbiao 已提交
1939

P
panqiangbiao 已提交
1940 1941 1942 1943
**参数**

| 参数     | 类型                | 必填 | 说明                          |
| -------- | ------------------- | ---- | ----------------------------- |
P
panqiangbiao 已提交
1944
| callback | AsyncCallback&lt;void&gt; | 是   | 回调返回空                  |
P
panqiangbiao 已提交
1945 1946 1947 1948

**示例**

```
P
panqiangbiao 已提交
1949
async function example() {
P
panqiangbiao 已提交
1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964
    let AlbumNoArgsfetchOp = {
        selections: '',
        selectionArgs: [],
    };
    const albumList = await media.getAlbums(AlbumNoArgsfetchOp);
    const album = albumList[0];
    album.albumName = 'hello';
    album.commitModify((err) => {
       if (err) {
           console.error('Failed ');
           return;
       }
       console.log('Modify successful.');
    })
}
P
panqiangbiao 已提交
1965 1966
```

P
panqiangbiao 已提交
1967
### commitModify<sup>8+</sup>
P
panqiangbiao 已提交
1968

P
panqiangbiao 已提交
1969
commitModify(): Promise&lt;void&gt;
P
panqiangbiao 已提交
1970 1971 1972

更新相册属性修改到数据库中。

P
panqiangbiao 已提交
1973
**需要权限**:ohos.permission.READ_MEDIA, ohos.permission.WRITE_MEDIA
P
panqiangbiao 已提交
1974

P
panqiangbiao 已提交
1975
**系统能力**:SystemCapability.Multimedia.MediaLibrary.Core
P
panqiangbiao 已提交
1976

P
panqiangbiao 已提交
1977 1978 1979 1980 1981 1982 1983 1984 1985
**返回值**

| 类型          | 说明                                                 |
| ------------- | ---------------------------------------------------- |
| Promise&lt;void&gt; | Promise调用返回空 |

**示例**

```
P
panqiangbiao 已提交
1986
async function example() {
P
panqiangbiao 已提交
1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999
    let AlbumNoArgsfetchOp = {
        selections: '',
        selectionArgs: [],
    };
    const albumList = await media.getAlbums(AlbumNoArgsfetchOp);
    const album = albumList[0];
    album.albumName = 'hello';
    album.commitModify().then(function() {
        console.info("commitModify successfully");
    }).catch(function(err){
        console.info("commitModify failed with error:"+ err);
    });
}
P
panqiangbiao 已提交
2000 2001
```

P
panqiangbiao 已提交
2002
### getFileAssets<sup>8+</sup>
P
panqiangbiao 已提交
2003

P
panqiangbiao 已提交
2004
getFileAssets(options: MediaFetchOptions, callback: AsyncCallback&lt;FetchFileResult&gt;): void
P
panqiangbiao 已提交
2005 2006 2007

按照检索条件获取相册中的文件。此方法使用Callback回调来返回文件结果集。

P
panqiangbiao 已提交
2008
**需要权限**:ohos.permission.READ_MEDIA
P
panqiangbiao 已提交
2009

P
panqiangbiao 已提交
2010
**系统能力**:SystemCapability.Multimedia.MediaLibrary.Core
P
panqiangbiao 已提交
2011

P
panqiangbiao 已提交
2012 2013
**参数**

P
panqiangbiao 已提交
2014 2015 2016 2017
| 参数     | 类型                                         | 必填 | 说明                              |
| -------- | -------------------------------------------- | ---- | --------------------------------- |
| options  | [MediaFetchOptions](#mediafetchoptions8)     | 是   | 媒体检索选项                      |
| callback | AsyncCallback<[FetchFileResult](#fetchfileresult8)> | 是   | 异步返回FetchFileResult之后的回调 |
P
panqiangbiao 已提交
2018 2019 2020 2021

**示例**

```
P
panqiangbiao 已提交
2022
async function example() {
P
panqiangbiao 已提交
2023 2024 2025 2026 2027 2028 2029 2030 2031 2032
    let AlbumNoArgsfetchOp = {
        selections: '',
        selectionArgs: [],
    };
    const albumList = await media.getAlbums(AlbumNoArgsfetchOp);
    const album = albumList[0];
    album.getFileAssets(fileNoArgsfetchOp, getFileAssetsCallBack);
    function getFileAssetsCallBack(err, fetchFileResult) {
        // do something
    }
P
panqiangbiao 已提交
2033 2034 2035
}
```

P
panqiangbiao 已提交
2036
### getFileAssets<sup>8+</sup>
P
panqiangbiao 已提交
2037

P
panqiangbiao 已提交
2038
 getFileAssets(options?: MediaFetchOptions): Promise&lt;FetchFileResult&gt;
P
panqiangbiao 已提交
2039 2040 2041

按照检索条件获取相册中的文件。此方法使用异步回调来返回文件结果集。

P
panqiangbiao 已提交
2042
**需要权限**:ohos.permission.READ_MEDIA
P
panqiangbiao 已提交
2043

P
panqiangbiao 已提交
2044
**系统能力**:SystemCapability.Multimedia.MediaLibrary.Core
P
panqiangbiao 已提交
2045 2046 2047

**参数**

P
panqiangbiao 已提交
2048 2049 2050
| 参数    | 类型                                     | 必填 | 说明         |
| ------- | ---------------------------------------- | ---- | ------------ |
| options | [MediaFetchOptions](#mediafetchoptions8) | 否   | 媒体检索选项 |
P
panqiangbiao 已提交
2051 2052 2053

**返回值**

P
panqiangbiao 已提交
2054 2055 2056
| 类型                                          | 说明                    |
| --------------------------------------------- | ----------------------- |
| Promise<[FetchFileResult](#fetchfileresult8)> | 返回FetchFileResult对象 |
P
panqiangbiao 已提交
2057 2058 2059 2060

**示例**

```
P
panqiangbiao 已提交
2061
async function example() {
P
panqiangbiao 已提交
2062 2063 2064 2065 2066 2067 2068 2069 2070 2071 2072 2073
    let AlbumNoArgsfetchOp = {
        selections: '',
        selectionArgs: [],
    };
    const albumList = await media.getAlbums(AlbumNoArgsfetchOp);
    const album = albumList[0];
    album.getFileAssets(fileNoArgsfetchOp).then(function(albumFetchFileResult){
        console.info("getFileAssets successfully:"+ JSON.stringify(albumFetchFileResult));
    }).catch(function(err){
        console.info("getFileAssets failed with error:"+ err);
    });
}
P
panqiangbiao 已提交
2074 2075
```

P
panqiangbiao 已提交
2076
## PeerInfo<sup>8+</sup>
P
panqiangbiao 已提交
2077

P
panqiangbiao 已提交
2078
注册设备的信息。
P
panqiangbiao 已提交
2079

P
panqiangbiao 已提交
2080 2081 2082 2083 2084 2085
| 名称       | 类型       | 可读 | 可写 | 说明             |
| ---------- | ---------- | ---- | ---- | ---------------- |
| deviceName | string     | 是   | 否   | 注册设备的名称   |
| networkId  | string     | 是   | 否   | 注册设备的网络ID |
| deviceType | DeviceType | 是   | 否   | 设备类型         |
| isOnline   | boolean    | 是   | 否   | 是否在线         |
P
panqiangbiao 已提交
2086 2087 2088 2089 2090 2091 2092 2093



MediaType
---------

枚举,媒体类型。

P
panqiangbiao 已提交
2094 2095 2096 2097 2098 2099
| 名称  | 默认值 | 描述 |
| ----- | ------ | ---- |
| FILE  | 0      | 文件 |
| IMAGE | 1      | 图片 |
| VIDEO | 2      | 视频 |
| AUDIO | 3      | 音频 |
P
panqiangbiao 已提交
2100 2101 2102 2103 2104 2105

FileKey
-------

枚举,文件关键信息。

P
panqiangbiao 已提交
2106 2107 2108 2109 2110 2111 2112 2113 2114 2115 2116 2117 2118 2119 2120 2121 2122 2123 2124 2125 2126
| 名称          | 默认值              | 描述                                                       |
| ------------- | ------------------- | ---------------------------------------------------------- |
| ID            | file_id             | 文件编号                                                   |
| RELATIVE_PATH | relative_path       | 相对公共目录路径                                           |
| DISPLAY_NAME  | display_name        | 显示名字                                                   |
| PARENT        | parent              | 父目录id                                                   |
| MIME_TYPE     | mime_type           | 文件扩展属性                                               |
| MEDIA_TYPE    | media_type          | 媒体类型                                                   |
| SIZE          | size                | 文件大小(单位:字节)                                     |
| DATE_ADDED    | date_added          | 添加日期(添加文件时间到1970年1月1日的秒数值)             |
| DATE_MODIFIED | date_modified       | 修改日期(修改文件时间到1970年1月1日的秒数值)             |
| DATE_TAKEN    | date_taken          | 拍摄日期(文件拍照时间到1970年1月1日的秒数值)             |
| TITLE         | title               | 文件标题                                                   |
| ARTIST        | artist              | 作者                                                       |
| AUDIOALBUM    | audio_album         | 专辑                                                       |
| DURATION      | duration            | 持续时间(单位:秒)                                       |
| WIDTH         | width               | 图片宽度(单位:像素)                                     |
| HEIGHT        | height              | 图片高度(单位:像素)                                     |
| ORIENTATION   | orientation         | 图片显示方向,即顺时针旋转角度,如0,90,180。(单位:度) |
| ALBUM_ID      | bucket_id           | 文件所归属的相册编号                                       |
| ALBUM_NAME    | bucket_display_name | 文件所归属相册名称                                         |
P
panqiangbiao 已提交
2127 2128 2129 2130 2131 2132

DirectoryType
-------------

枚举,目录类型。

P
panqiangbiao 已提交
2133 2134 2135 2136 2137 2138 2139 2140
| 名称          | 默认值 | 描述               |
| ------------- | ------ | ------------------ |
| DIR_CAMERA    | 0      | 表示Camera文件路径 |
| DIR_VIDEO     | 1      | 表示视频路径       |
| DIR_IMAGE     | 2      | 表示图片路径       |
| DIR_AUDIO     | 3      | 表示音频路径       |
| DIR_DOCUMENTS | 4      | 表示文档路径       |
| DIR_DOWNLOAD  | 5      | 表示下载路径       |
P
panqiangbiao 已提交
2141

P
panqiangbiao 已提交
2142
DeviceType
P
panqiangbiao 已提交
2143 2144 2145 2146
-----------

枚举,设备类型。

P
panqiangbiao 已提交
2147 2148 2149 2150 2151 2152 2153 2154 2155
| 名称         | 默认值 | 描述       |
| ------------ | ------ | ---------- |
| TYPE_UNKNOWN | 0      | 未识别设备 |
| TYPE_LAPTOP  | 1      | 笔记本电脑 |
| TYPE_PHONE   | 2      | 手机       |
| TYPE_TABLET  | 3      | 平板电脑   |
| TYPE_WATCH   | 4      | 智能手表   |
| TYPE_CAR     | 5      | 车载设备   |
| TYPE_TV      | 6      | 电视设备   |
P
panqiangbiao 已提交
2156

P
panqiangbiao 已提交
2157
## MediaFetchOptions<sup>8+</sup>
P
panqiangbiao 已提交
2158 2159 2160

检索条件。

P
panqiangbiao 已提交
2161 2162
| 名称          | 类型          | 可读 | 可写 |  必填 |说明             |
| ------------- | ------------- | ---- | ---- |  ---- |---------------- |
P
panqiangbiao 已提交
2163 2164 2165
| selections    | string        | 是   | 是   |是   | 检索条件,使用[FileKey](#filekey)中的枚举值作为检索条件的列名。示例:<br />selections: mediaLibrary.FileKey.MEDIA_TYPE + '= ? OR' +mediaLibrary.FileKey.MEDIA_TYPE + '= ?‘, |
| selectionArgs | Array&lt;string&gt; | 是   | 是   |是   | 检索条件的值,对应selections中检索条件列的值。<br />示例:<br />selectionArgs: [mediaLibrary.MediaType.IMAGE.toString(), mediaLibrary.MediaType.VIDEO.toString()], |
| order         | string        | 是   | 是   | 否   |检索结果排序方式,使用[FileKey](#filekey)中的枚举值作为检索结果排序的列,可以用升序或降序排列。示例:<br />升序排列:order: mediaLibrary.FileKey.DATE_ADDED + " AESC"<br />降序排列:order: mediaLibrary.FileKey.DATE_ADDED + " DESC" |
P
panqiangbiao 已提交
2166 2167
| uri           | string        | 是   | 是   | 否   |文件URI          |
| networkId     | string        | 是   | 是   | 否   |注册设备网络ID   |
P
panqiangbiao 已提交
2168
| extendArgs    | string        | 是   | 是   | 否   |扩展的检索参数,目前没有扩展检索参数   |
P
panqiangbiao 已提交
2169

P
panqiangbiao 已提交
2170
## Size<sup>8+</sup>
P
panqiangbiao 已提交
2171 2172 2173

图片尺寸。

P
panqiangbiao 已提交
2174 2175 2176 2177
| 名称   | 类型   | 可读 | 可写 | 说明             |
| ------ | ------ | ---- | ---- | ---------------- |
| width  | number | 是   | 是   | 宽(单位:像素) |
| height | number | 是   | 是   | 高(单位:像素) |
P
panqiangbiao 已提交
2178

P
panqiangbiao 已提交
2179 2180 2181 2182 2183 2184 2185 2186 2187 2188 2189 2190 2191 2192 2193 2194 2195 2196 2197 2198 2199 2200 2201 2202 2203 2204 2205 2206 2207 2208 2209
## MediaAssetOption

媒体资源选项。

本接口在OpenHarmony 3.1 Release版本仅为接口定义,暂不支持使用。接口将在OpenHarmony 3.1 MR版本中提供使用支持。

**系统能力:** 以下各项对应的系统能力均为SystemCapability.Multimedia.MediaLibrary.Core


| 名称         | 类型   | 必填 | 描述                                                         |
| ------------ | ------ | ---- | ------------------------------------------------------------ |
| src          | string | 是   | 媒体库数据的URI。                                            |
| mimeType     | string | 是   | 媒体MIME(Multipurpose&nbsp;Internet&nbsp;Mail&nbsp;Extensions)类型。<br/>例:'image/\*'、'video/\*'等。 |
| relativePath | string | 否   | 自定义媒体资源保存位置,不填则保存到默认路径。例:imageDir/image2/(媒体资源将保存位置为:default/imageDir/image2/),default为默认保存路径。 |

## MediaSelectOption

媒体资源类型选项。

本接口在OpenHarmony 3.1 Release版本仅为接口定义,暂不支持使用。接口将在OpenHarmony 3.1 MR版本中提供使用支持。

**系统能力:** 以下各项对应的系统能力均为SystemCapability.Multimedia.MediaLibrary.Core


### 属性

| 名称  | 类型   | 必填 | 描述                           |
| ----- | ------ | ---- | ------------------------------ |
| type  | string | 是   | 媒体类型,包括:image,video。 |
| count | number | 是   | 媒体选择最大数量。             |