js-apis-medialibrary.md 99.3 KB
Newer Older
Z
zengyawen 已提交
1
# @ohos.multimedia.medialibrary (媒体库管理)
Z
zengyawen 已提交
2

zyjhandsome's avatar
zyjhandsome 已提交
3
> **说明:**
H
huweiqi 已提交
4
>
H
huweiqi 已提交
5 6 7 8
> - 该组件从API Version 6开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
> - 从API Version 9开始废弃。保留至API Version 13版本。
> - 部分功能变更为系统接口,仅供系统应用使用,请使用[@ohos.filemanagement.userFileManager](js-apis-userFileManager.md)相应接口替代。
> - 媒体资源选择和保存功能仍开放给普通应用,请使用[@ohos.file.picker](js-apis-file-picker.md)相应接口替代。
P
panqiangbiao 已提交
9

Z
zengyawen 已提交
10
## 导入模块
H
huweiqi 已提交
11

12
```js
13
import mediaLibrary from '@ohos.multimedia.mediaLibrary';
P
panqiangbiao 已提交
14 15
```

Z
zengyawen 已提交
16
## mediaLibrary.getMediaLibrary<sup>8+</sup>
P
panqiangbiao 已提交
17

P
panqiangbiao 已提交
18
getMediaLibrary(context: Context): MediaLibrary
P
panqiangbiao 已提交
19

Z
zengyawen 已提交
20
获取媒体库的实例,用于访问和修改用户等个人媒体数据信息(如音频、视频、图片、文档等)。
P
panqiangbiao 已提交
21

W
wangqinxiao 已提交
22 23
此接口仅可在Stage模型下使用。

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

H
huweiqi 已提交
26
**参数:**
P
panqiangbiao 已提交
27

Z
zengyawen 已提交
28 29 30
| 参数名  | 类型    | 必填 | 说明                       |
| ------- | ------- | ---- | -------------------------- |
| context | Context | 是   | 传入Ability实例的Context。 |
P
panqiangbiao 已提交
31 32 33

**返回值:**

H
HelloCrease 已提交
34 35
| 类型                            | 说明    |
| ----------------------------- | :---- |
H
huweiqi 已提交
36
| [MediaLibrary](#medialibrary) | 媒体库实例。 |
P
panqiangbiao 已提交
37

潘强标 已提交
38 39
**示例:(从API Version 9开始)**

40
```ts
H
huweiqi 已提交
41
// 获取mediaLibrary实例,后续用到此实例均采用此处获取的实例。
42 43
const context = getContext(this);
let media = mediaLibrary.getMediaLibrary(context);
潘强标 已提交
44 45 46
```

**示例:(API Version 8)**
P
panqiangbiao 已提交
47

48
```js
P
panqiangbiao 已提交
49
import featureAbility from '@ohos.ability.featureAbility';
P
panqiangbiao 已提交
50

51
let context = featureAbility.getContext();
52
let media = mediaLibrary.getMediaLibrary(context);
P
panqiangbiao 已提交
53
```
54

Z
zengyawen 已提交
55 56 57 58 59 60
## mediaLibrary.getMediaLibrary

getMediaLibrary(): MediaLibrary

获取媒体库的实例,用于访问和修改用户等个人媒体数据信息(如音频、视频、图片、文档等)。

W
wangqinxiao 已提交
61 62
此接口仅可在FA模型下使用。

Z
zengyawen 已提交
63 64 65 66 67 68
**系统能力**:SystemCapability.Multimedia.MediaLibrary.Core

**返回值:**

| 类型                          | 说明       |
| ----------------------------- | :--------- |
H
huweiqi 已提交
69
| [MediaLibrary](#medialibrary) | 媒体库实例。 |
Z
zengyawen 已提交
70 71 72 73

**示例:**

```js
74
let media = mediaLibrary.getMediaLibrary();
Z
zengyawen 已提交
75 76
```

P
panqiangbiao 已提交
77
## MediaLibrary
P
panqiangbiao 已提交
78

Z
zengyawen 已提交
79
### getFileAssets<sup>7+</sup>
P
panqiangbiao 已提交
80

P
panqiangbiao 已提交
81
getFileAssets(options: MediaFetchOptions, callback: AsyncCallback&lt;FetchFileResult&gt;): void 
P
panqiangbiao 已提交
82 83 84

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

P
panqiangbiao 已提交
85
**需要权限**:ohos.permission.READ_MEDIA
P
panqiangbiao 已提交
86

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

P
panqiangbiao 已提交
89 90
**参数:**

Z
zengyawen 已提交
91 92
| 参数名   | 类型                                                | 必填 | 说明                              |
| -------- | --------------------------------------------------- | ---- | --------------------------------- |
H
huweiqi 已提交
93 94
| options  | [MediaFetchOptions](#mediafetchoptions7)            | 是   | 文件检索选项。                      |
| callback | AsyncCallback<[FetchFileResult](#fetchfileresult7)> | 是   | callback返回文件检索结果集。 |
P
panqiangbiao 已提交
95 96 97

**示例:**

98
```js
H
huweiqi 已提交
99
async function example() {
H
huweiqi 已提交
100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141
  let fileKeyObj = mediaLibrary.FileKey;
  let imageType = mediaLibrary.MediaType.IMAGE;
  // 创建文件获取选项,此处参数为获取image类型的文件资源。
  let imagesFetchOp = {
    selections: fileKeyObj.MEDIA_TYPE + '= ?',
    selectionArgs: [imageType.toString()],
  };
  // 获取文件资源,使用callback方式返回异步结果。
  media.getFileAssets(imagesFetchOp, async (error, fetchFileResult) => {
    // 判断获取的文件资源的检索结果集是否为undefined,若为undefined则接口调用失败。
    if (fetchFileResult == undefined) {
      console.error('get fetchFileResult failed with error: ' + error);
      return;
    }
    // 获取文件检索结果集中的总数。
    const count = fetchFileResult.getCount();
    // 判断结果集中的数量是否小于0,小于0时表示接口调用失败。
    if (count < 0) {
      console.error('get count from fetchFileResult failed, count: ' + count);
      return;
    }
    // 判断结果集中的数量是否等于0,等于0时表示接口调用成功,但是检索结果集为空,请检查文件获取选项参数配置是否有误和设备中是否存在相应文件。
    if (count == 0) {
      console.info('The count of fetchFileResult is zero');
      return;
    }
    console.info('Get fetchFileResult successfully, count: ' + count);
    // 获取文件检索结果集中的第一个资源,使用callback方式返回异步结果,文件数量较多时请使用getAllObject接口。
    fetchFileResult.getFirstObject(async (error, fileAsset) => {
      // 检查获取的第一个资源是否为undefined,若为undefined则接口调用失败。
      if (fileAsset == undefined) {
        console.error('get first object failed with error: ' + error);
        return;
      }
      console.info('fileAsset.displayName ' + '0 : ' + fileAsset.displayName);
      // 调用 getNextObject 接口获取下一个资源,直到最后一个。
      for (let i = 1; i < count; i++) {
        let fileAsset = await fetchFileResult.getNextObject();
        console.info('fileAsset.displayName ' + i + ': ' + fileAsset.displayName);
      }
      // 释放FetchFileResult实例并使其失效。无法调用其他方法。
      fetchFileResult.close();
Z
zhang-daiyue 已提交
142
    });
H
huweiqi 已提交
143
  });
H
huweiqi 已提交
144
}
P
panqiangbiao 已提交
145
```
H
huweiqi 已提交
146

Z
zengyawen 已提交
147
### getFileAssets<sup>7+</sup>
P
panqiangbiao 已提交
148

P
panqiangbiao 已提交
149
getFileAssets(options: MediaFetchOptions): Promise&lt;FetchFileResult&gt;
P
panqiangbiao 已提交
150 151 152

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

P
panqiangbiao 已提交
153
**需要权限**:ohos.permission.READ_MEDIA
P
panqiangbiao 已提交
154

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

P
panqiangbiao 已提交
157 158
**参数:**

Z
zengyawen 已提交
159 160
| 参数名  | 类型                                     | 必填 | 说明         |
| ------- | ---------------------------------------- | ---- | ------------ |
H
huweiqi 已提交
161
| options | [MediaFetchOptions](#mediafetchoptions7) | 是   | 文件检索选项。 |
P
panqiangbiao 已提交
162

H
huweiqi 已提交
163
**返回值:**
P
panqiangbiao 已提交
164

Z
zengyawen 已提交
165 166
| 类型                                 | 说明           |
| ------------------------------------ | -------------- |
H
huweiqi 已提交
167
| Promise&lt;[FetchFileResult](#fetchfileresult7)&gt; | Promise对象,返回文件检索结果集。 |
P
panqiangbiao 已提交
168 169 170

**示例:**

171
```js
H
huweiqi 已提交
172
async function example() {
H
huweiqi 已提交
173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204
  let fileKeyObj = mediaLibrary.FileKey;
  let imageType = mediaLibrary.MediaType.IMAGE;
  // 创建文件获取选项,此处参数为获取image类型的文件资源。
  let imagesFetchOp = {
    selections: fileKeyObj.MEDIA_TYPE + '= ?',
    selectionArgs: [imageType.toString()],
  };
  // 获取文件资源,使用Promise方式返回结果。
  media.getFileAssets(imagesFetchOp).then(async (fetchFileResult) => {
    // 获取文件检索结果集中的总数。
    const count = fetchFileResult.getCount();
    // 判断结果集中的数量是否小于0,小于0时表示接口调用失败。
    if (count < 0) {
      console.error('get count from fetchFileResult failed, count: ' + count);
      return;
    }
    // 判断结果集中的数量是否等于0,等于0时表示接口调用成功,但是检索结果集为空,请检查文件获取选项参数配置是否有误和设备中是否存在相应文件。
    if (count == 0) {
      console.info('The count of fetchFileResult is zero');
      return;
    }
    console.info('Get fetchFileResult successfully, count: ' + count);
    // 获取文件检索结果集中的第一个资源,使用Promise方式返回异步结果,文件数量较多时请使用getAllObject接口。
    fetchFileResult.getFirstObject().then(async (fileAsset) => {
      console.info('fileAsset.displayName ' + '0 : ' + fileAsset.displayName);
      // 调用 getNextObject 接口获取下一个资源,直到最后一个。
      for (let i = 1; i < count; i++) {
        let fileAsset = await fetchFileResult.getNextObject();
        console.info('fileAsset.displayName ' + i + ': ' + fileAsset.displayName);
      }
      // 释放FetchFileResult实例并使其失效。无法调用其他方法。
      fetchFileResult.close();
H
huweiqi 已提交
205
    }).catch((error) => {
H
huweiqi 已提交
206 207
      // 调用getFirstObject接口失败。
      console.error('get first object failed with error: ' + error);
Z
zhang-daiyue 已提交
208
    });
H
huweiqi 已提交
209 210 211 212
  }).catch((error) => {
    // 调用getFileAssets接口失败。
    console.error('get file assets failed with error: ' + error);
  });
H
huweiqi 已提交
213
}
P
panqiangbiao 已提交
214 215
```

P
panqiangbiao 已提交
216
### on<sup>8+</sup>
P
panqiangbiao 已提交
217

218
on(type: 'deviceChange'&#124;'albumChange'&#124;'imageChange'&#124;'audioChange'&#124;'videoChange'&#124;'fileChange'&#124;'remoteFileChange', callback: Callback&lt;void&gt;): void
P
panqiangbiao 已提交
219

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

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

P
panqiangbiao 已提交
224 225
**参数:**

H
HelloCrease 已提交
226 227
| 参数名      | 类型                   | 必填   | 说明                                       |
| -------- | -------------------- | ---- | ---------------------------------------- |
H
huweiqi 已提交
228 229
| type     | 'deviceChange'&#124;<br/>'albumChange'&#124;<br/>'imageChange'&#124;<br/>'audioChange'&#124;<br/>'videoChange'&#124;<br/>'fileChange'&#124;<br/>'remoteFileChange'               | 是    | 媒体类型 <br/>'deviceChange':&nbsp;注册设备变更 <br/>'albumChange':&nbsp;相册变更<br/>'imageChange':&nbsp;图片文件变更<br/>'audioChange': &nbsp;音频文件变更<br/>'videoChange':  &nbsp;视频文件变更<br/>'fileChange':     &nbsp;文件变更<br/>'remoteFileChange':&nbsp;注册设备上文件变更。 |
| callback | Callback&lt;void&gt; | 是    | callbac返回空。                                    |
P
panqiangbiao 已提交
230 231 232

**示例:**

233
```js
Z
zhang-daiyue 已提交
234
media.on('imageChange', () => {
H
huweiqi 已提交
235 236
  // image file had changed, do something.
});
P
panqiangbiao 已提交
237
```
H
huweiqi 已提交
238

P
panqiangbiao 已提交
239
### off<sup>8+</sup>
P
panqiangbiao 已提交
240

241
off(type: 'deviceChange'&#124;'albumChange'&#124;'imageChange'&#124;'audioChange'&#124;'videoChange'&#124;'fileChange'&#124;'remoteFileChange', callback?: Callback&lt;void&gt;): void
P
panqiangbiao 已提交
242

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

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

P
panqiangbiao 已提交
247 248
**参数:**

H
HelloCrease 已提交
249 250
| 参数名      | 类型                   | 必填   | 说明                                       |
| -------- | -------------------- | ---- | ---------------------------------------- |
H
huweiqi 已提交
251 252
| type     | 'deviceChange'&#124;<br/>'albumChange'&#124;<br/>'imageChange'&#124;<br/>'audioChange'&#124;<br/>'videoChange'&#124;<br/>'fileChange'&#124;<br/>'remoteFileChange'               | 是    | 媒体类型 <br/>'deviceChange':&nbsp;注册设备变更 <br/>'albumChange':&nbsp;相册变更<br/>'imageChange':&nbsp;图片文件变更<br/>'audioChange': &nbsp;音频文件变更<br/>'videoChange':  &nbsp;视频文件变更<br/>'fileChange':     &nbsp;文件变更<br/>'remoteFileChange':&nbsp;注册设备上文件变更。 |
| callback | Callback&lt;void&gt; | 否    | callback返回空。                                    |
P
panqiangbiao 已提交
253 254 255

**示例:**

256
```js
潘强标 已提交
257
media.off('imageChange', () => {
H
huweiqi 已提交
258 259
  // stop listening successfully.
});
P
panqiangbiao 已提交
260 261
```

B
bmeangel 已提交
262
### createAsset<sup>8+</sup>
P
panqiangbiao 已提交
263

P
panqiangbiao 已提交
264
createAsset(mediaType: MediaType, displayName: string, relativePath: string, callback: AsyncCallback&lt;FileAsset&gt;): void
P
panqiangbiao 已提交
265 266 267

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

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

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

P
panqiangbiao 已提交
272 273
**参数:**

Z
zengyawen 已提交
274 275
| 参数名       | 类型                                    | 必填 | 说明                                                         |
| ------------ | --------------------------------------- | ---- | ------------------------------------------------------------ |
H
huweiqi 已提交
276 277 278 279
| mediaType    | [MediaType](#mediatype8)                | 是   | 媒体类型。                                                     |
| displayName  | string                                  | 是   | 展示文件名。                                                   |
| relativePath | string                                  | 是   | 文件保存路径,可以通过[getPublicDirectory](#getpublicdirectory8)获取不同类型文件的保存路径。 |
| callback     | AsyncCallback<[FileAsset](#fileasset7)> | 是   | callback返回创建的媒体资源FileAsset对象。                          |
P
panqiangbiao 已提交
280 281 282

**示例:**

283
```js
P
panqiangbiao 已提交
284
async function example() {
H
huweiqi 已提交
285 286 287 288 289 290 291 292 293 294 295
  // 使用Callback方式创建Image类型文件。
  let mediaType = mediaLibrary.MediaType.IMAGE;
  let DIR_IMAGE = mediaLibrary.DirectoryType.DIR_IMAGE;
  const path = await media.getPublicDirectory(DIR_IMAGE);
  media.createAsset(mediaType, 'imageCallBack.jpg', path + 'myPicture/', (error, fileAsset) => {
    if (fileAsset != undefined) {
      console.info('createAsset successfully, message');
    } else {
      console.error('createAsset failed with error: ' + error);
    }
  });
P
panqiangbiao 已提交
296
}
P
panqiangbiao 已提交
297 298
```

P
panqiangbiao 已提交
299
### createAsset<sup>8+</sup>
P
panqiangbiao 已提交
300

P
panqiangbiao 已提交
301
createAsset(mediaType: MediaType, displayName: string, relativePath: string): Promise&lt;FileAsset&gt;
P
panqiangbiao 已提交
302 303 304

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

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

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

P
panqiangbiao 已提交
309 310
**参数:**

Z
zengyawen 已提交
311 312
| 参数名       | 类型                     | 必填 | 说明                                                         |
| ------------ | ------------------------ | ---- | ------------------------------------------------------------ |
H
huweiqi 已提交
313 314 315
| mediaType    | [MediaType](#mediatype8) | 是   | 媒体类型。                                                     |
| displayName  | string                   | 是   | 展示文件名。                                                   |
| relativePath | string                   | 是   | 相对路径,可以通过getPublicDirectory获取不同类型媒体文件的一层目录的relative path。 |
P
panqiangbiao 已提交
316

H
huweiqi 已提交
317
**返回值:**
P
panqiangbiao 已提交
318

Z
zengyawen 已提交
319 320
| 类型                     | 说明              |
| ------------------------ | ----------------- |
H
huweiqi 已提交
321
| Promise&lt;[FileAsset](#fileasset7)&gt; | Promise对象,返回创建媒体数据的FileAsset。 |
P
panqiangbiao 已提交
322 323 324

**示例:**

325
```js
H
huweiqi 已提交
326
async function example() {
H
huweiqi 已提交
327 328 329 330 331 332 333 334 335
  // 使用Promise方式创建Image类型文件。
  let mediaType = mediaLibrary.MediaType.IMAGE;
  let DIR_IMAGE = mediaLibrary.DirectoryType.DIR_IMAGE;
  const path = await media.getPublicDirectory(DIR_IMAGE);
  media.createAsset(mediaType, 'imagePromise.jpg', path + 'myPicture/').then((fileAsset) => {
    console.info('createAsset successfully, message = ' + JSON.stringify(fileAsset));
  }).catch((error) => {
    console.error('createAsset failed with error: ' + error);
  });
H
huweiqi 已提交
336
}
P
panqiangbiao 已提交
337 338
```

Z
zengyawen 已提交
339 340 341 342
### deleteAsset<sup>8+</sup>

deleteAsset(uri: string): Promise\<void>

H
huweiqi 已提交
343
删除媒体文件资源。
Z
zengyawen 已提交
344 345 346

**系统接口**:此接口为系统接口。

347
**需要权限**:ohos.permission.READ_MEDIA 和 ohos.permission.WRITE_MEDIA
Z
zengyawen 已提交
348 349 350 351 352 353 354

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

**参数:**

| 参数名      | 类型                           | 必填   | 说明              |
| -------- | ---------------------------- | ---- | --------------- |
H
huweiqi 已提交
355
| uri | string | 是    | 需要删除的媒体文件资源的uri。 |
Z
zengyawen 已提交
356 357

**返回值:**
H
huweiqi 已提交
358

Z
zengyawen 已提交
359 360
| 类型                  | 说明                   |
| ------------------- | -------------------- |
H
huweiqi 已提交
361
| Promise&lt;void&gt; | Promise对象,返回删除的结果。 |
Z
zengyawen 已提交
362 363 364 365 366

**示例:**

```js
async function example() {
H
huweiqi 已提交
367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384
  let fileKeyObj = mediaLibrary.FileKey;
  let fileType = mediaLibrary.MediaType.FILE;
  let option = {
    selections: fileKeyObj.MEDIA_TYPE + '= ?',
    selectionArgs: [fileType.toString()],
  };
  const fetchFileResult = await media.getFileAssets(option);
  let asset = await fetchFileResult.getFirstObject();
  if (asset == undefined) {
    console.error('asset not exist');
    return;
  }
  media.deleteAsset(asset.uri).then(() => {
    console.info('deleteAsset successfully');
  }).catch((error) => {
    console.error('deleteAsset failed with error: ' + error);
  });
  fetchFileResult.close();
Z
zengyawen 已提交
385 386 387 388
}
```

### deleteAsset<sup>8+</sup>
H
huweiqi 已提交
389

Z
zengyawen 已提交
390 391
deleteAsset(uri: string, callback: AsyncCallback\<void>): void

H
huweiqi 已提交
392
删除媒体文件资源。
Z
zengyawen 已提交
393 394 395

**系统接口**:此接口为系统接口。

396
**需要权限**:ohos.permission.READ_MEDIA 和 ohos.permission.WRITE_MEDIA
Z
zengyawen 已提交
397 398 399 400 401 402 403 404

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

**参数:**

| 参数名      | 类型                           | 必填   | 说明              |
| -------- | ---------------------------- | ---- | --------------- |
| uri | string | 是    | 需要删除的媒体文件资源的uri。 |
H
huweiqi 已提交
405
|callback |AsyncCallback\<void>| 是  |callback返回空。|
Z
zengyawen 已提交
406 407 408 409 410

**示例:**

```js
async function example() {
H
huweiqi 已提交
411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427
  let fileKeyObj = mediaLibrary.FileKey;
  let fileType = mediaLibrary.MediaType.FILE;
  let option = {
    selections: fileKeyObj.MEDIA_TYPE + '= ?',
    selectionArgs: [fileType.toString()],
  };
  const fetchFileResult = await media.getFileAssets(option);
  let asset = await fetchFileResult.getFirstObject();
  if (asset == undefined) {
    console.error('asset not exist');
    return;
  }
  media.deleteAsset(asset.uri, (error) => {
    if (error != undefined) {
      console.error('deleteAsset failed with error: ' + error);
    } else {
      console.info('deleteAsset successfully');
Z
zengyawen 已提交
428
    }
H
huweiqi 已提交
429 430
  });
  fetchFileResult.close();
Z
zengyawen 已提交
431 432 433
}
```

P
panqiangbiao 已提交
434
### getPublicDirectory<sup>8+</sup>
P
panqiangbiao 已提交
435

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

P
panqiangbiao 已提交
438
获取公共目录路径,使用callback方式返回结果。
P
panqiangbiao 已提交
439 440 441 442 443

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

**参数:**

Z
zengyawen 已提交
444 445
| 参数名   | 类型                             | 必填 | 说明                      |
| -------- | -------------------------------- | ---- | ------------------------- |
H
huweiqi 已提交
446 447
| type     | [DirectoryType](#directorytype8) | 是   | 公共目录类型。              |
| callback | AsyncCallback&lt;string&gt;      | 是   | callback返回公共目录路径。 |
P
panqiangbiao 已提交
448 449 450

**示例:**

451
```js
P
panqiangbiao 已提交
452
let DIR_CAMERA = mediaLibrary.DirectoryType.DIR_CAMERA;
H
huweiqi 已提交
453
media.getPublicDirectory(DIR_CAMERA, (error, dicResult) => {
H
huweiqi 已提交
454 455 456 457 458
  if (dicResult == 'Camera/') {
    console.info('getPublicDirectory DIR_CAMERA successfully');
  } else {
    console.error('getPublicDirectory DIR_CAMERA failed with error: ' + error);
  }
P
panqiangbiao 已提交
459 460 461
});
```

P
panqiangbiao 已提交
462
### getPublicDirectory<sup>8+</sup>
P
panqiangbiao 已提交
463

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

P
panqiangbiao 已提交
466
获取公共目录路径,使用Promise方式返回结果。
P
panqiangbiao 已提交
467 468 469 470 471

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

**参数:**

Z
zengyawen 已提交
472 473
| 参数名 | 类型                             | 必填 | 说明         |
| ------ | -------------------------------- | ---- | ------------ |
H
huweiqi 已提交
474
| type   | [DirectoryType](#directorytype8) | 是   | 公共目录类型。 |
P
panqiangbiao 已提交
475 476 477

**返回值:**

Z
zengyawen 已提交
478 479
| 类型             | 说明             |
| ---------------- | ---------------- |
H
huweiqi 已提交
480
| Promise\<string> | Promise对象,返回公共目录路径。 |
P
panqiangbiao 已提交
481 482 483

**示例:**

484
```js
P
panqiangbiao 已提交
485
async function example() {
H
huweiqi 已提交
486 487 488 489 490 491 492 493 494 495
  let DIR_CAMERA = mediaLibrary.DirectoryType.DIR_CAMERA;
  media.getPublicDirectory(DIR_CAMERA).then((dicResult) => {
    if (dicResult == 'Camera/') {
      console.info('getPublicDirectory DIR_CAMERA successfully');
    } else {
      console.error('getPublicDirectory DIR_CAMERA failed');
    }
  }).catch((error) => {
    console.error('getPublicDirectory failed with error: ' + error);
  });
P
panqiangbiao 已提交
496 497 498
}
```

Z
zengyawen 已提交
499
### getAlbums<sup>7+</sup>
P
panqiangbiao 已提交
500

H
huweiqi 已提交
501
getAlbums(options: MediaFetchOptions, callback: AsyncCallback&lt;Array&lt;Album&gt;&gt;): void
P
panqiangbiao 已提交
502

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

P
panqiangbiao 已提交
505
**需要权限**:ohos.permission.READ_MEDIA
P
panqiangbiao 已提交
506

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

H
huweiqi 已提交
509
**参数:**
P
panqiangbiao 已提交
510

Z
zengyawen 已提交
511 512
| 参数名   | 类型                                         | 必填 | 说明                        |
| -------- | -------------------------------------------- | ---- | --------------------------- |
H
huweiqi 已提交
513 514
| options  | [MediaFetchOptions](#mediafetchoptions7)     | 是   | 相册检索条件。                |
| callback | AsyncCallback&lt;Array<[Album](#album7)>&gt; | 是   | callback返回获取的Album结果集。 |
P
panqiangbiao 已提交
515 516 517

**示例:**

518
```js
H
huweiqi 已提交
519
async function example() {
H
huweiqi 已提交
520 521 522 523 524 525 526 527 528 529 530
   // 获取相册需要先预置相册和资源,示例代码为预置的新建相册1。
  let AlbumNoArgsfetchOp = {
    selections: mediaLibrary.FileKey.ALBUM_NAME + '= ?',
    selectionArgs: ['新建相册1'],
  };
  media.getAlbums(AlbumNoArgsfetchOp, (error, albumList) => {
    if (albumList != undefined) {
      console.info('getAlbums successfully: ' + JSON.stringify(albumList));
    } else {
      console.error('getAlbums failed with error: ' + error);
    }
H
huweiqi 已提交
531
  });
H
huweiqi 已提交
532
}
P
panqiangbiao 已提交
533 534
```

Z
zengyawen 已提交
535
### getAlbums<sup>7+</sup>
P
panqiangbiao 已提交
536

H
huweiqi 已提交
537
getAlbums(options: MediaFetchOptions): Promise&lt;Array&lt;Album&gt;&gt;
P
panqiangbiao 已提交
538

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

P
panqiangbiao 已提交
541
**需要权限**:ohos.permission.READ_MEDIA
P
panqiangbiao 已提交
542

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

P
panqiangbiao 已提交
545 546
**参数:**

Z
zengyawen 已提交
547 548
| 参数名  | 类型                                     | 必填 | 说明         |
| ------- | ---------------------------------------- | ---- | ------------ |
H
huweiqi 已提交
549
| options | [MediaFetchOptions](#mediafetchoptions7) | 是   | 相册获取条件。 |
P
panqiangbiao 已提交
550 551 552

**返回值:**

Z
zengyawen 已提交
553 554
| 类型                             | 说明          |
| -------------------------------- | ------------- |
H
huweiqi 已提交
555
| Promise<Array<[Album](#album7)>> | Promise对象,返回获取的Album结果集。 |
P
panqiangbiao 已提交
556 557 558

**示例:**

559
```js
H
huweiqi 已提交
560
async function example() {
H
huweiqi 已提交
561
  // 获取相册需要先预置相册和资源,示例代码为预置的新建相册1。
H
huweiqi 已提交
562 563 564 565 566 567 568 569 570
  let AlbumNoArgsfetchOp = {
    selections: mediaLibrary.FileKey.ALBUM_NAME + '= ?',
    selectionArgs: ['新建相册1'],
  };
  media.getAlbums(AlbumNoArgsfetchOp).then((albumList) => {
    console.info('getAlbums successfully: ' + JSON.stringify(albumList));
  }).catch((error) => {
    console.error('getAlbums failed with error: ' + error);
  });
H
huweiqi 已提交
571
}
P
panqiangbiao 已提交
572 573
```

P
panqiangbiao 已提交
574
### release<sup>8+</sup>
P
panqiangbiao 已提交
575

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

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

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

P
panqiangbiao 已提交
583 584
**参数:**

H
HelloCrease 已提交
585 586
| 参数名      | 类型                        | 必填   | 说明         |
| -------- | ------------------------- | ---- | ---------- |
H
huweiqi 已提交
587
| callback | AsyncCallback&lt;void&gt; | 是    | callback返回空。 |
P
panqiangbiao 已提交
588 589 590

**示例:**

591
```js
H
huweiqi 已提交
592
media.release(() => {
H
huweiqi 已提交
593
  // do something.
P
panqiangbiao 已提交
594
});
P
panqiangbiao 已提交
595 596
```

P
panqiangbiao 已提交
597
### release<sup>8+</sup>
P
panqiangbiao 已提交
598

P
panqiangbiao 已提交
599
release(): Promise&lt;void&gt;
P
panqiangbiao 已提交
600

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

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

P
panqiangbiao 已提交
606 607
**返回值:**

H
HelloCrease 已提交
608 609
| 类型                  | 说明                   |
| ------------------- | -------------------- |
H
huweiqi 已提交
610
| Promise&lt;void&gt; | Promise对象,返回空。 |
P
panqiangbiao 已提交
611 612 613

**示例:**

614
```js
H
huweiqi 已提交
615
media.release();
P
panqiangbiao 已提交
616 617
```

H
huweiqi 已提交
618
### storeMediaAsset
P
panqiangbiao 已提交
619 620 621 622 623

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

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

H
huweiqi 已提交
624
> **说明**:此接口为API Version 6开始支持,只支持FA模型使用。
P
panqiangbiao 已提交
625 626 627 628 629

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

**参数:**

H
HelloCrease 已提交
630 631 632
| 参数名      | 类型                                    | 必填   | 说明                      |
| -------- | ------------------------------------- | ---- | ----------------------- |
| option   | [MediaAssetOption](#mediaassetoption) | 是    | 媒体资源选项。                 |
H
huweiqi 已提交
633
| callback | AsyncCallback&lt;string&gt;           | 是    | callback返回保存媒体资源成功后得到的URI。 |
P
panqiangbiao 已提交
634 635 636

**示例:**

637
```js
P
panqiangbiao 已提交
638
let option = {
H
huweiqi 已提交
639 640 641
  src : '/data/storage/el2/base/haps/entry/image.png',
  mimeType : 'image/*',
  relativePath : 'Pictures/'
P
panqiangbiao 已提交
642
};
H
huweiqi 已提交
643
mediaLibrary.getMediaLibrary().storeMediaAsset(option, (error, value) => {
H
huweiqi 已提交
644 645 646 647 648 649
  if (error) {
    console.error('storeMediaAsset failed with error: ' + error);
    return;
  }
  console.info('Media resources stored. ');
  // Obtain the URI that stores media resources.
P
panqiangbiao 已提交
650
});
651
```
P
panqiangbiao 已提交
652

H
huweiqi 已提交
653
### storeMediaAsset
P
panqiangbiao 已提交
654 655 656 657 658

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

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

H
huweiqi 已提交
659
> **说明**:此接口为API Version 6开始支持,只支持FA模型使用。
P
panqiangbiao 已提交
660 661 662 663 664

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

**参数:**

H
HelloCrease 已提交
665 666 667
| 参数名    | 类型                                    | 必填   | 说明      |
| ------ | ------------------------------------- | ---- | ------- |
| option | [MediaAssetOption](#mediaassetoption) | 是    | 媒体资源选项。 |
P
panqiangbiao 已提交
668 669 670

**返回值:**

H
HelloCrease 已提交
671 672
| 类型                    | 说明                           |
| --------------------- | ---------------------------- |
H
huweiqi 已提交
673
| Promise&lt;string&gt; | Promise对象,返回保存媒体资源成功后得到的URI。 |
P
panqiangbiao 已提交
674 675 676

**示例:**

677
```js
P
panqiangbiao 已提交
678
let option = {
H
huweiqi 已提交
679 680 681
  src : '/data/storage/el2/base/haps/entry/image.png',
  mimeType : 'image/*',
  relativePath : 'Pictures/'
P
panqiangbiao 已提交
682 683
};
mediaLibrary.getMediaLibrary().storeMediaAsset(option).then((value) => {
H
huweiqi 已提交
684 685
  console.info('Media resources stored.');
  // Obtain the URI that stores media resources.
H
huweiqi 已提交
686
}).catch((error) => {
H
huweiqi 已提交
687
  console.error('storeMediaAsset failed with error: ' + error);
P
panqiangbiao 已提交
688
});
689
```
P
panqiangbiao 已提交
690

H
huweiqi 已提交
691
### startImagePreview
P
panqiangbiao 已提交
692 693 694

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

Z
zhang-daiyue 已提交
695
启动图片预览界面并限定预览开始显示的图片。可以预览指定序号的单张本地图片(datashare://),也可以预览列表中的所有网络图片(https://)。使用callback方式进行异步回调。
P
panqiangbiao 已提交
696

H
huweiqi 已提交
697
> **说明**:
H
huweiqi 已提交
698 699
> 此接口为API Version 6开始支持,只支持FA模型使用。
> 建议使用[Image组件](../arkui-ts/ts-basic-components-image.md)替代。<br/>Image组件,可用于本地图片和网络图片的渲染展示。
P
panqiangbiao 已提交
700 701 702 703 704

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

**参数:**

H
HelloCrease 已提交
705 706
| 参数名      | 类型                        | 必填   | 说明                                       |
| -------- | ------------------------- | ---- | ---------------------------------------- |
H
huweiqi 已提交
707
| images   | Array&lt;string&gt;       | 是    | 预览的图片URI('https://','datashare://')列表。 |
H
HelloCrease 已提交
708
| index    | number                    | 是    | 开始显示的图片序号。                               |
H
huweiqi 已提交
709
| callback | AsyncCallback&lt;void&gt; | 是    | callback返回空。                        |
P
panqiangbiao 已提交
710 711 712

**示例:**

713
```js
P
panqiangbiao 已提交
714
let images = [
H
huweiqi 已提交
715 716
  'file://media/xxxx/2',
  'file://media/xxxx/3'
P
panqiangbiao 已提交
717
];
H
huweiqi 已提交
718
/* 网络图片使用方式。
P
panqiangbiao 已提交
719
let images = [
H
huweiqi 已提交
720 721
  'https://media.xxxx.com/image1.jpg',
  'https://media.xxxx.com/image2.jpg'
P
panqiangbiao 已提交
722
];
H
HelloCrease 已提交
723
*/
P
panqiangbiao 已提交
724
let index = 1;
H
huweiqi 已提交
725
mediaLibrary.getMediaLibrary().startImagePreview(images, index, (error) => {
H
huweiqi 已提交
726 727 728 729 730
  if (error) {
    console.error('startImagePreview failed with error: ' + error);
    return;
  }
  console.info('Succeeded in previewing the images.');
P
panqiangbiao 已提交
731
});
732
```
P
panqiangbiao 已提交
733

H
huweiqi 已提交
734
### startImagePreview
P
panqiangbiao 已提交
735 736 737

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

Z
zhang-daiyue 已提交
738
启动图片预览界面,可以预览列表中首张本地图片(datashare://),也可以预览列表中的所有网络图片(https://)。使用callback方式进行异步回调。
P
panqiangbiao 已提交
739

H
huweiqi 已提交
740 741 742
> **说明**: 
> 此接口为API Version 6开始支持,只支持FA模型使用。
> 建议使用[Image组件](../arkui-ts/ts-basic-components-image.md)替代。<br/>Image组件,可用于本地图片和网络图片的渲染展示。
P
panqiangbiao 已提交
743 744 745 746 747

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

**参数:**

H
HelloCrease 已提交
748 749
| 参数名      | 类型                        | 必填   | 说明                                       |
| -------- | ------------------------- | ---- | ---------------------------------------- |
H
huweiqi 已提交
750
| images   | Array&lt;string&gt;       | 是    | 预览的图片URI('https://','datashare://')列表。 |
H
huweiqi 已提交
751
| callback | AsyncCallback&lt;void&gt; | 是    | callback返回空。                        |
P
panqiangbiao 已提交
752 753 754

**示例:**

755
```js
P
panqiangbiao 已提交
756
let images = [
H
huweiqi 已提交
757 758
  'file://media/xxxx/2',
  'file://media/xxxx/3'
P
panqiangbiao 已提交
759
];
H
huweiqi 已提交
760
/* 网络图片使用方式。
P
panqiangbiao 已提交
761
let images = [
H
huweiqi 已提交
762 763
  'https://media.xxxx.com/image1.jpg',
  'https://media.xxxx.com/image2.jpg'
P
panqiangbiao 已提交
764
];
H
HelloCrease 已提交
765
*/
H
huweiqi 已提交
766
mediaLibrary.getMediaLibrary().startImagePreview(images, (error) => {
H
huweiqi 已提交
767 768 769 770 771
  if (error) {
    console.error('startImagePreview failed with error: ' + error);
    return;
  }
  console.info('Succeeded in previewing the images.');
P
panqiangbiao 已提交
772
});
773
```
P
panqiangbiao 已提交
774

H
huweiqi 已提交
775
### startImagePreview
P
panqiangbiao 已提交
776 777 778

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

Z
zhang-daiyue 已提交
779
启动图片预览界面并限定预览开始显示的图片。可以预览指定序号的单张本地图片(datashare://),也可以预览列表中的所有网络图片(https://)。使用Promise方式进行异步回调。
P
panqiangbiao 已提交
780

H
huweiqi 已提交
781
> **说明**:
H
huweiqi 已提交
782 783
> 此接口为API Version 6开始支持,只支持FA模型使用。
> 建议使用[Image组件](../arkui-ts/ts-basic-components-image.md)替代。<br/>Image组件,可用于本地图片和网络图片的渲染展示。
P
panqiangbiao 已提交
784 785 786 787 788

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

**参数:**

H
HelloCrease 已提交
789 790
| 参数名    | 类型                  | 必填   | 说明                                       |
| ------ | ------------------- | ---- | ---------------------------------------- |
H
huweiqi 已提交
791
| images | Array&lt;string&gt; | 是    | 预览的图片URI('https://','datashare://')列表。 |
H
HelloCrease 已提交
792
| index  | number              | 否    | 开始显示的图片序号,不选择时默认为0。                      |
P
panqiangbiao 已提交
793 794 795

**返回值:**

H
HelloCrease 已提交
796 797
| 类型                  | 说明                              |
| ------------------- | ------------------------------- |
H
huweiqi 已提交
798
| Promise&lt;void&gt; | Promise对象,返回空。 |
P
panqiangbiao 已提交
799 800 801

**示例:**

802
```js
P
panqiangbiao 已提交
803
let images = [
H
huweiqi 已提交
804 805
  'file://media/xxxx/2',
  'file://media/xxxx/3'
P
panqiangbiao 已提交
806
];
H
huweiqi 已提交
807
/* 网络图片使用方式。
P
panqiangbiao 已提交
808
let images = [
H
huweiqi 已提交
809 810
  'https://media.xxxx.com/image1.jpg',
  'https://media.xxxx.com/image2.jpg'
P
panqiangbiao 已提交
811
];
H
HelloCrease 已提交
812
*/
P
panqiangbiao 已提交
813 814
let index = 1;
mediaLibrary.getMediaLibrary().startImagePreview(images, index).then(() => {
H
huweiqi 已提交
815
  console.info('Succeeded in previewing the images.');
H
huweiqi 已提交
816
}).catch((error) => {
H
huweiqi 已提交
817
  console.error('startImagePreview failed with error: ' + error);
P
panqiangbiao 已提交
818
});
819
```
P
panqiangbiao 已提交
820

H
huweiqi 已提交
821
### startMediaSelect
P
panqiangbiao 已提交
822 823 824 825 826

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

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

H
huweiqi 已提交
827
> **说明**:
H
huweiqi 已提交
828 829
> 此接口为API Version 6开始支持,只支持FA模型使用。
> 建议使用系统应用图库替代。图库是系统内置的可视资源访问应用,提供图片和视频的管理、浏览等功能,使用方法请参考[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)。
P
panqiangbiao 已提交
830 831 832 833 834

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

**参数:**

H
HelloCrease 已提交
835 836
| 参数名      | 类型                                       | 必填   | 说明                                   |
| -------- | ---------------------------------------- | ---- | ------------------------------------ |
H
huweiqi 已提交
837
| option   | [MediaSelectOption](#mediaselectoption)  | 是    | 媒体选择选项。                              |
H
huweiqi 已提交
838
| callback | AsyncCallback&lt;Array&lt;string&gt;&gt; | 是    | callback返回选择的媒体URI列表。 |
P
panqiangbiao 已提交
839 840 841

**示例:**

842
```js
Z
zhang-daiyue 已提交
843
let option : mediaLibrary.MediaSelectOption = {
H
huweiqi 已提交
844 845
  type : 'media',
  count : 2
P
panqiangbiao 已提交
846
};
H
huweiqi 已提交
847
mediaLibrary.getMediaLibrary().startMediaSelect(option, (error, value) => {
H
huweiqi 已提交
848 849 850 851 852 853
  if (error) {
    console.error('startMediaSelect failed with error: ' + error);
    return;
  }
  console.info('Media resources selected.');
  // Obtain the media selection value.
P
panqiangbiao 已提交
854
});
855
```
P
panqiangbiao 已提交
856

H
huweiqi 已提交
857
### startMediaSelect
P
panqiangbiao 已提交
858 859 860 861 862

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

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

H
huweiqi 已提交
863
> **说明**:
H
huweiqi 已提交
864 865
> 此接口为API Version 6开始支持,只支持FA模型使用。
> 建议使用系统应用图库替代。图库是系统内置的可视资源访问应用,提供图片和视频的管理、浏览等功能,使用方法请参考[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)。
P
panqiangbiao 已提交
866 867 868 869 870

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

**参数:**

H
HelloCrease 已提交
871 872
| 参数名    | 类型                                      | 必填   | 说明      |
| ------ | --------------------------------------- | ---- | ------- |
H
huweiqi 已提交
873
| option | [MediaSelectOption](#mediaselectoption) | 是    | 媒体选择选项。 |
P
panqiangbiao 已提交
874 875 876

**返回值:**

H
HelloCrease 已提交
877 878
| 类型                                 | 说明                                       |
| ---------------------------------- | ---------------------------------------- |
H
huweiqi 已提交
879
| Promise&lt;Array&lt;string&gt;&gt; | Promise对象,返回选择的媒体URI列表。 |
P
panqiangbiao 已提交
880 881 882

**示例:**

883
```js
Z
zhang-daiyue 已提交
884
let option : mediaLibrary.MediaSelectOption = {
H
huweiqi 已提交
885 886
  type : 'media',
  count : 2
P
panqiangbiao 已提交
887
};
Z
zhang-daiyue 已提交
888
mediaLibrary.getMediaLibrary().startMediaSelect(option).then((value) => {
H
huweiqi 已提交
889 890
  console.info('Media resources selected.');
  // Obtain the media selection value.
H
huweiqi 已提交
891
}).catch((error) => {
H
huweiqi 已提交
892
  console.error('startMediaSelect failed with error: ' + error);
P
panqiangbiao 已提交
893
});
Z
zengyawen 已提交
894
```
H
huweiqi 已提交
895

Z
zengyawen 已提交
896 897 898 899
### getActivePeers<sup>8+</sup>

getActivePeers(): Promise\<Array\<PeerInfo>>;

H
huweiqi 已提交
900
获取在线对端设备的信息,使用Promise方式返回异步结果。
Z
zengyawen 已提交
901 902 903 904 905 906 907 908 909 910 911

**系统接口**:此接口为系统接口。

**需要权限**:ohos.permission.READ_MEDIA

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

**返回值:**

| 类型                  | 说明                   |
| ------------------- | -------------------- |
H
huweiqi 已提交
912
|  Promise\<Array\<[PeerInfo](#peerinfo8)>> | Promise对象,返回获取的所有在线对端设备的PeerInfo。 |
Z
zengyawen 已提交
913 914 915 916 917

**示例:**

```js
async function example() {
H
huweiqi 已提交
918 919 920 921 922 923 924 925 926
  media.getActivePeers().then((devicesInfo) => {
    if (devicesInfo != undefined) {
      console.info('get distributed info ' + JSON.stringify(devicesInfo));
    } else {
      console.info('get distributed info is undefined!');
    }
  }).catch((error) => {
    console.error('get distributed info failed with error: ' + error);
  });
Z
zengyawen 已提交
927 928 929 930
}
```

### getActivePeers<sup>8+</sup>
931

Z
zengyawen 已提交
932 933 934 935 936 937 938 939 940 941 942 943 944 945
getActivePeers(callback: AsyncCallback\<Array\<PeerInfo>>): void;

获取在线对端设备的信息,使用callback方式返回异步结果。

**系统接口**:此接口为系统接口。

**需要权限**:ohos.permission.READ_MEDIA

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

**返回值:**

| 类型                  | 说明                   |
| ------------------- | -------------------- |
H
huweiqi 已提交
946
| callback: AsyncCallback\<Array\<[PeerInfo](#peerinfo8)>> | callback返回获取的所有在线对端设备的PeerInfo对象。 |
Z
zengyawen 已提交
947 948 949 950 951

**示例:**

```js
async function example() {
H
huweiqi 已提交
952 953 954 955 956 957 958
  media.getActivePeers((error, devicesInfo) => {
    if (devicesInfo != undefined) {
      console.info('get distributed info ' + JSON.stringify(devicesInfo));
    } else {
      console.error('get distributed failed with error: ' + error);
    }
  });
Z
zengyawen 已提交
959 960 961 962 963 964 965
}
```

### getAllPeers<sup>8+</sup>

getAllPeers(): Promise\<Array\<PeerInfo>>;

H
huweiqi 已提交
966
获取所有对端设备的信息,使用Promise方式返回异步结果。
Z
zengyawen 已提交
967 968 969 970 971 972 973 974 975 976 977

**系统接口**:此接口为系统接口。

**需要权限**:ohos.permission.READ_MEDIA

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

**返回值:**

| 类型                  | 说明                   |
| ------------------- | -------------------- |
H
huweiqi 已提交
978
|  Promise\<Array\<[PeerInfo](#peerinfo8)>> | Promise对象,返回获取的所有对端设备的PeerInfo。 |
Z
zengyawen 已提交
979 980 981 982 983

**示例:**

```js
async function example() {
H
huweiqi 已提交
984 985 986 987 988 989 990 991 992
  media.getAllPeers().then((devicesInfo) => {
    if (devicesInfo != undefined) {
      console.info('get distributed info ' + JSON.stringify(devicesInfo));
    } else {
      console.info('get distributed info is undefined!');
    }
  }).catch((error) => {
    console.error('get distributed info failed with error: ' + error);
  });
Z
zengyawen 已提交
993 994 995 996
}
```

### getAllPeers<sup>8+</sup>
997

Z
zengyawen 已提交
998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011
getAllPeers(callback: AsyncCallback\<Array\<PeerInfo>>): void;

获取所有对端设备的信息,使用callback方式返回异步结果。

**系统接口**:此接口为系统接口。

**需要权限**:ohos.permission.READ_MEDIA

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

**返回值:**

| 类型                  | 说明                   |
| ------------------- | -------------------- |
H
huweiqi 已提交
1012
| callback: AsyncCallback\<Array\<[PeerInfo](#peerinfo8)>> | callback返回获取的所有对端设备的PeerInfo对象。 |
Z
zengyawen 已提交
1013 1014 1015 1016 1017

**示例:**

```js
async function example() {
H
huweiqi 已提交
1018 1019 1020 1021 1022 1023 1024
  media.getAllPeers((error, devicesInfo) => {
    if (devicesInfo != undefined) {
      console.info('get distributed info ' + JSON.stringify(devicesInfo));
    } else {
      console.error('get distributed failed with error: ' + error);
    }
  });
Z
zengyawen 已提交
1025
}
1026
```
P
panqiangbiao 已提交
1027

Z
zengyawen 已提交
1028
## FileAsset<sup>7+</sup>
P
panqiangbiao 已提交
1029 1030 1031

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

zyjhandsome's avatar
zyjhandsome 已提交
1032
> **说明:**
H
huweiqi 已提交
1033
>
H
huweiqi 已提交
1034 1035 1036
> 1. title字段默认为去掉后缀的文件名,音频和视频文件会尝试解析文件内容,部分设备写入后在触发扫描时会被还原。
> 2. orientation字段部分设备可能不支持修改,建议使用image组件的[ModifyImageProperty](js-apis-image.md#modifyimageproperty9)接口。

Z
zengyawen 已提交
1037 1038 1039
### 属性

**系统能力:** 以下各项对应的系统能力均为SystemCapability.Multimedia.MediaLibrary.Core
P
panqiangbiao 已提交
1040

Z
zengyawen 已提交
1041 1042
| 名称                      | 类型                     | 可读 | 可写 | 说明                                                   |
| ------------------------- | ------------------------ | ---- | ---- | ------------------------------------------------------ |
H
huweiqi 已提交
1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063
| id                        | number                   | 是   | 否   | 文件资源编号。                                           |
| uri                       | string                   | 是   | 否   | 文件资源uri(如:file://media/image/2)。         |
| mimeType                  | string                   | 是   | 否   | 文件扩展属性。                                           |
| mediaType<sup>8+</sup>    | [MediaType](#mediatype8) | 是   | 否   | 媒体类型。                                               |
| displayName               | string                   | 是   | 是   | 显示文件名,包含后缀名。                                 |
| title                     | string                   | 是   | 是   | 文件标题。                                               |
| relativePath<sup>8+</sup> | string                   | 是   | 是   | 相对公共目录路径。                                       |
| parent<sup>8+</sup>       | number                   | 是   | 否   | 父目录id。                                               |
| size                      | number                   | 是   | 否   | 文件大小(单位:字节)。                                 |
| dateAdded                 | number                   | 是   | 否   | 添加日期(添加文件时间到1970年1月1日的秒数值)。         |
| dateModified              | number                   | 是   | 否   | 修改日期(修改文件时间到1970年1月1日的秒数值,修改文件名不会改变此值,当文件内容发生修改时才会更新)。|
| dateTaken                 | number                   | 是   | 否   | 拍摄日期(文件拍照时间到1970年1月1日的秒数值)。         |
| artist<sup>8+</sup>       | string                   | 是   | 否   | 作者。                                                   |
| audioAlbum<sup>8+</sup>   | string                   | 是   | 否   | 专辑。                                                   |
| width                     | number                   | 是   | 否   | 图片宽度(单位:像素)。                                 |
| height                    | number                   | 是   | 否   | 图片高度(单位:像素)。                                 |
| orientation               | number                   | 是   | 是   | 图片显示方向(顺时针旋转角度,如0,90,180  单位:度)。 |
| duration<sup>8+</sup>     | number                   | 是   | 否   | 持续时间(单位:毫秒)。                                   |
| albumId                   | number                   | 是   | 否   | 文件所归属的相册编号。                                   |
| albumUri<sup>8+</sup>     | string                   | 是   | 否   | 文件所归属相册uri。                                      |
| albumName                 | string                   | 是   | 否   | 文件所归属相册名称。                                    |
P
panqiangbiao 已提交
1064 1065

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

P
panqiangbiao 已提交
1067
isDirectory(callback: AsyncCallback&lt;boolean&gt;): void
P
panqiangbiao 已提交
1068 1069 1070

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

P
panqiangbiao 已提交
1071
**需要权限**:ohos.permission.READ_MEDIA
P
panqiangbiao 已提交
1072

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

P
panqiangbiao 已提交
1075 1076
**参数:**

H
HelloCrease 已提交
1077 1078
| 参数名      | 类型                           | 必填   | 说明                  |
| -------- | ---------------------------- | ---- | ------------------- |
H
huweiqi 已提交
1079
| callback | AsyncCallback&lt;boolean&gt; | 是    | callback返回boolean值,值为true则是目录,值为false则非目录。 |
P
panqiangbiao 已提交
1080 1081 1082

**示例:**

1083
```js
P
panqiangbiao 已提交
1084
async function example() {
H
huweiqi 已提交
1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101
  let fileKeyObj = mediaLibrary.FileKey;
  let imageType = mediaLibrary.MediaType.IMAGE;
  let getImageOp = {
    selections: fileKeyObj.MEDIA_TYPE + '= ?',
    selectionArgs: [imageType.toString()],
    order: fileKeyObj.DATE_ADDED + ' DESC',
  };
  const fetchFileResult = await media.getFileAssets(getImageOp);
  const asset = await fetchFileResult.getFirstObject();
  asset.isDirectory((error, isDirectory) => {
    if (error) {
      console.error('isDirectory failed with error: ' + error);
    } else {
      console.info('isDirectory result:' + isDirectory);
    }
  });
  fetchFileResult.close();
P
panqiangbiao 已提交
1102
}
P
panqiangbiao 已提交
1103 1104
```

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

P
panqiangbiao 已提交
1107
isDirectory():Promise&lt;boolean&gt;
P
panqiangbiao 已提交
1108 1109 1110

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

P
panqiangbiao 已提交
1111
**需要权限**:ohos.permission.READ_MEDIA
P
panqiangbiao 已提交
1112

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

P
panqiangbiao 已提交
1115 1116
**返回值:**

H
HelloCrease 已提交
1117 1118
| 类型                     | 说明                           |
| ---------------------- | ---------------------------- |
H
huweiqi 已提交
1119
| Promise&lt;boolean&gt; | Promise对象,返回boolean值,值为true则是目录,值为false则非目录。 |
P
panqiangbiao 已提交
1120 1121 1122

**示例:**

1123
```js
P
panqiangbiao 已提交
1124
async function example() {
H
huweiqi 已提交
1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139
  let fileKeyObj = mediaLibrary.FileKey;
  let imageType = mediaLibrary.MediaType.IMAGE;
  let getImageOp = {
    selections: fileKeyObj.MEDIA_TYPE + '= ?',
    selectionArgs: [imageType.toString()],
    order: fileKeyObj.DATE_ADDED + ' DESC',
  };
  const fetchFileResult = await media.getFileAssets(getImageOp);
  const asset = await fetchFileResult.getFirstObject();
  asset.isDirectory().then((isDirectory) => {
    console.info('isDirectory result:' + isDirectory);
  }).catch((error) => {
    console.error('isDirectory failed with error: ' + error);
  });
  fetchFileResult.close();
P
panqiangbiao 已提交
1140
}
P
panqiangbiao 已提交
1141 1142
```

P
panqiangbiao 已提交
1143
### commitModify<sup>8+</sup>
P
panqiangbiao 已提交
1144

P
panqiangbiao 已提交
1145
commitModify(callback: AsyncCallback&lt;void&gt;): void
P
panqiangbiao 已提交
1146 1147 1148

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

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

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

P
panqiangbiao 已提交
1153 1154
**参数:**

H
HelloCrease 已提交
1155 1156
| 参数名      | 类型                        | 必填   | 说明    |
| -------- | ------------------------- | ---- | ----- |
H
huweiqi 已提交
1157
| callback | AsyncCallback&lt;void&gt; | 是    | callback返回空。 |
P
panqiangbiao 已提交
1158 1159 1160

**示例:**

1161
```js
P
panqiangbiao 已提交
1162
async function example() {
H
huweiqi 已提交
1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176
  let fileKeyObj = mediaLibrary.FileKey;
  let imageType = mediaLibrary.MediaType.IMAGE;
  let getImageOp = {
    selections: fileKeyObj.MEDIA_TYPE + '= ?',
    selectionArgs: [imageType.toString()],
    order: fileKeyObj.DATE_ADDED + ' DESC',
  };
  const fetchFileResult = await media.getFileAssets(getImageOp);
  const asset = await fetchFileResult.getFirstObject();
  asset.title = 'newtitle';
  asset.commitModify(() => {
    console.info('commitModify successfully');
  });
  fetchFileResult.close();
P
panqiangbiao 已提交
1177
}
P
panqiangbiao 已提交
1178 1179
```

P
panqiangbiao 已提交
1180
### commitModify<sup>8+</sup>
P
panqiangbiao 已提交
1181

P
panqiangbiao 已提交
1182
commitModify(): Promise&lt;void&gt;
P
panqiangbiao 已提交
1183 1184 1185

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

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

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

P
panqiangbiao 已提交
1190 1191
**返回值:**

H
HelloCrease 已提交
1192 1193
| 类型                  | 说明         |
| ------------------- | ---------- |
H
huweiqi 已提交
1194
| Promise&lt;void&gt; | Promise对象,返回空。 |
P
panqiangbiao 已提交
1195 1196 1197

**示例:**

1198
```js
P
panqiangbiao 已提交
1199
async function example() {
H
huweiqi 已提交
1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211
  let fileKeyObj = mediaLibrary.FileKey;
  let imageType = mediaLibrary.MediaType.IMAGE;
  let getImageOp = {
    selections: fileKeyObj.MEDIA_TYPE + '= ?',
    selectionArgs: [imageType.toString()],
    order: fileKeyObj.DATE_ADDED + ' DESC',
  };
  const fetchFileResult = await media.getFileAssets(getImageOp);
  const asset = await fetchFileResult.getFirstObject();
  asset.title = 'newtitle';
  await asset.commitModify();
  fetchFileResult.close();
P
panqiangbiao 已提交
1212
}
P
panqiangbiao 已提交
1213 1214
```

P
panqiangbiao 已提交
1215
### open<sup>8+</sup>
P
panqiangbiao 已提交
1216

P
panqiangbiao 已提交
1217
open(mode: string, callback: AsyncCallback&lt;number&gt;): void
P
panqiangbiao 已提交
1218 1219 1220

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

H
huweiqi 已提交
1221
**注意**:以 'w' 模式打开文件时,返回的fd无法进行读取。但由于不同文件系统实现上的差异,部分用户态文件系统在 'w' 模式打开时会允许用fd读取。若有针对fd的读写行为,建议使用 'rw' 模式打开文件。当前写操作是互斥的操作,写操作完成后需要调用close进行释放。
潘强标 已提交
1222

Z
zhang-daiyue 已提交
1223
**需要权限**:ohos.permission.READ_MEDIA or ohos.permission.WRITE_MEDIA
P
panqiangbiao 已提交
1224

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

H
huweiqi 已提交
1227
**参数:**
P
panqiangbiao 已提交
1228

H
HelloCrease 已提交
1229 1230
| 参数名      | 类型                          | 必填   | 说明                                  |
| -------- | --------------------------- | ---- | ----------------------------------- |
H
huweiqi 已提交
1231 1232
| mode     | string                      | 是    | 打开文件方式,如:'r'(只读), 'w'(只写), 'rw'(读写)。 |
| callback | AsyncCallback&lt;number&gt; | 是    | callback返回文件描述符。                            |
P
panqiangbiao 已提交
1233 1234 1235

**示例:**

1236
```js
P
panqiangbiao 已提交
1237
async function example() {
H
huweiqi 已提交
1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248
  let mediaType = mediaLibrary.MediaType.IMAGE;
  let DIR_IMAGE = mediaLibrary.DirectoryType.DIR_IMAGE;
  const path = await media.getPublicDirectory(DIR_IMAGE);
  const asset = await media.createAsset(mediaType, 'image00003.jpg', path);
  asset.open('rw', (error, fd) => {
    if (fd > 0) {
      asset.close(fd);
    } else {
      console.error('File Open failed with error: ' + error);
    }
  });
P
panqiangbiao 已提交
1249
}
P
panqiangbiao 已提交
1250 1251
```

P
panqiangbiao 已提交
1252
### open<sup>8+</sup>
P
panqiangbiao 已提交
1253

P
panqiangbiao 已提交
1254
open(mode: string): Promise&lt;number&gt;
P
panqiangbiao 已提交
1255 1256 1257

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

H
huweiqi 已提交
1258
**注意**:以 'w' 模式打开文件时,返回的fd无法进行读取。但由于不同文件系统实现上的差异,部分用户态文件系统在 'w' 模式打开时会允许用fd读取。若有针对fd的读写行为,建议使用 'rw' 模式打开文件。当前写操作是互斥的操作,写操作完成后需要调用close进行释放。
潘强标 已提交
1259

Z
zhang-daiyue 已提交
1260
**需要权限**:ohos.permission.READ_MEDIA or ohos.permission.WRITE_MEDIA
P
panqiangbiao 已提交
1261

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

P
panqiangbiao 已提交
1264 1265
**参数:**

H
HelloCrease 已提交
1266 1267
| 参数名  | 类型     | 必填   | 说明                                  |
| ---- | ------ | ---- | ----------------------------------- |
H
huweiqi 已提交
1268
| mode | string | 是    | 打开文件方式,如:'r'(只读), 'w'(只写), 'rw'(读写)。 |
P
panqiangbiao 已提交
1269 1270 1271

**返回值:**

H
HelloCrease 已提交
1272 1273
| 类型                    | 说明            |
| --------------------- | ------------- |
H
huweiqi 已提交
1274
| Promise&lt;number&gt; | Promise对象,返回文件描述符。 |
P
panqiangbiao 已提交
1275 1276 1277

**示例:**

1278
```js
P
panqiangbiao 已提交
1279
async function example() {
H
huweiqi 已提交
1280 1281 1282 1283 1284 1285 1286 1287 1288
  let mediaType = mediaLibrary.MediaType.IMAGE;
  let DIR_IMAGE = mediaLibrary.DirectoryType.DIR_IMAGE;
  const path = await media.getPublicDirectory(DIR_IMAGE);
  const asset = await media.createAsset(mediaType, 'image00003.jpg', path);
  asset.open('rw').then((fd) => {
    console.info('File open fd: ' + fd);
  }).catch((error) => {
    console.error('File open failed with error: ' + error);
  });
P
panqiangbiao 已提交
1289
}
P
panqiangbiao 已提交
1290 1291
```

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

P
panqiangbiao 已提交
1294
close(fd: number, callback: AsyncCallback&lt;void&gt;): void
P
panqiangbiao 已提交
1295 1296 1297

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

Z
zhang-daiyue 已提交
1298
**需要权限**:ohos.permission.READ_MEDIA or ohos.permission.WRITE_MEDIA
P
panqiangbiao 已提交
1299

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

P
panqiangbiao 已提交
1302 1303
**参数:**

H
HelloCrease 已提交
1304 1305
| 参数名      | 类型                        | 必填   | 说明    |
| -------- | ------------------------- | ---- | ----- |
H
huweiqi 已提交
1306 1307
| fd       | number                    | 是    | 文件描述符。 |
| callback | AsyncCallback&lt;void&gt; | 是    | callback返回空。 |
P
panqiangbiao 已提交
1308 1309 1310

**示例:**

1311
```js
P
panqiangbiao 已提交
1312
async function example() {
H
huweiqi 已提交
1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329
  let fileKeyObj = mediaLibrary.FileKey;
  let imageType = mediaLibrary.MediaType.IMAGE;
  let getImageOp = {
    selections: fileKeyObj.MEDIA_TYPE + '= ?',
    selectionArgs: [imageType.toString()],
    order: fileKeyObj.DATE_ADDED + ' DESC',
  };
  const fetchFileResult = await media.getFileAssets(getImageOp);
  const asset = await fetchFileResult.getFirstObject();
  asset.open('rw').then((fd) => {
    console.info('File open fd: ' + fd);
    asset.close(fd, (error) => {
      if (error) {
        console.error('asset.close failed with error: ' + error);
      } else {
        console.info('asset.close successfully');
      }
P
panqiangbiao 已提交
1330
    });
H
huweiqi 已提交
1331 1332 1333 1334
  }).catch((error) => {
    console.error('File open failed with error: ' + error);
  });
  fetchFileResult.close();
P
panqiangbiao 已提交
1335
}
P
panqiangbiao 已提交
1336 1337
```

P
panqiangbiao 已提交
1338
### close<sup>8+</sup>
P
panqiangbiao 已提交
1339

P
panqiangbiao 已提交
1340
close(fd: number): Promise&lt;void&gt;
P
panqiangbiao 已提交
1341 1342 1343

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

Z
zhang-daiyue 已提交
1344
**需要权限**:ohos.permission.READ_MEDIA or ohos.permission.WRITE_MEDIA
P
panqiangbiao 已提交
1345

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

P
panqiangbiao 已提交
1348 1349
**参数:**

H
HelloCrease 已提交
1350 1351
| 参数名  | 类型     | 必填   | 说明    |
| ---- | ------ | ---- | ----- |
H
huweiqi 已提交
1352
| fd   | number | 是    | 文件描述符。 |
P
panqiangbiao 已提交
1353 1354 1355

**返回值:**

H
HelloCrease 已提交
1356 1357
| 类型                  | 说明         |
| ------------------- | ---------- |
H
huweiqi 已提交
1358
| Promise&lt;void&gt; | Promise对象,返回空。 |
P
panqiangbiao 已提交
1359 1360 1361

**示例:**

1362
```js
P
panqiangbiao 已提交
1363
async function example() {
H
huweiqi 已提交
1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378
  let fileKeyObj = mediaLibrary.FileKey;
  let imageType = mediaLibrary.MediaType.IMAGE;
  let getImageOp = {
    selections: fileKeyObj.MEDIA_TYPE + '= ?',
    selectionArgs: [imageType.toString()],
    order: fileKeyObj.DATE_ADDED + ' DESC',
  };
  const fetchFileResult = await media.getFileAssets(getImageOp);
  const asset = await fetchFileResult.getFirstObject();
  asset.open('rw').then((fd) => {
    console.info('File fd!' + fd);
    asset.close(fd).then(() => {
      console.info('asset.close successfully');
    }).catch((closeErr) => {
      console.error('asset.close fail, closeErr: ' + closeErr);
P
panqiangbiao 已提交
1379
    });
H
huweiqi 已提交
1380 1381 1382 1383
  }).catch((error) => {
    console.error('open File failed with error: ' + error);
  });
  fetchFileResult.close();
P
panqiangbiao 已提交
1384
}
P
panqiangbiao 已提交
1385 1386
```

P
panqiangbiao 已提交
1387
### getThumbnail<sup>8+</sup>
P
panqiangbiao 已提交
1388

P
panqiangbiao 已提交
1389
getThumbnail(callback: AsyncCallback&lt;image.PixelMap&gt;): void
P
panqiangbiao 已提交
1390 1391 1392

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

P
panqiangbiao 已提交
1393
**需要权限**:ohos.permission.READ_MEDIA
P
panqiangbiao 已提交
1394

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

P
panqiangbiao 已提交
1397 1398
**参数:**

H
HelloCrease 已提交
1399 1400
| 参数名      | 类型                                  | 必填   | 说明               |
| -------- | ----------------------------------- | ---- | ---------------- |
H
huweiqi 已提交
1401
| callback | AsyncCallback&lt;image.PixelMap&gt; | 是    | callback返回缩略图的PixelMap。 |
P
panqiangbiao 已提交
1402 1403 1404

**示例:**

1405
```js
P
panqiangbiao 已提交
1406
async function example() {
H
huweiqi 已提交
1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423
  let fileKeyObj = mediaLibrary.FileKey;
  let imageType = mediaLibrary.MediaType.IMAGE;
  let getImageOp = {
    selections: fileKeyObj.MEDIA_TYPE + '= ?',
    selectionArgs: [imageType.toString()],
    order: fileKeyObj.DATE_ADDED + ' DESC',
  };
  const fetchFileResult = await media.getFileAssets(getImageOp);
  const asset = await fetchFileResult.getFirstObject();
  asset.getThumbnail((error, pixelmap) => {
    if (error) {
      console.error('mediaLibrary getThumbnail failed with error: ' + error);
    } else {
      console.info('mediaLibrary getThumbnail Successful, pixelmap ' + JSON.stringify(pixelmap));
    }
  });
  fetchFileResult.close();
P
panqiangbiao 已提交
1424
}
P
panqiangbiao 已提交
1425 1426
```

P
panqiangbiao 已提交
1427
### getThumbnail<sup>8+</sup>
P
panqiangbiao 已提交
1428

P
panqiangbiao 已提交
1429
getThumbnail(size: Size, callback: AsyncCallback&lt;image.PixelMap&gt;): void
P
panqiangbiao 已提交
1430 1431 1432

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

P
panqiangbiao 已提交
1433
**需要权限**:ohos.permission.READ_MEDIA
P
panqiangbiao 已提交
1434

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

P
panqiangbiao 已提交
1437 1438
**参数:**

H
HelloCrease 已提交
1439 1440
| 参数名      | 类型                                  | 必填   | 说明               |
| -------- | ----------------------------------- | ---- | ---------------- |
H
huweiqi 已提交
1441 1442
| size     | [Size](#size8)                      | 是    | 缩略图尺寸。            |
| callback | AsyncCallback&lt;image.PixelMap&gt; | 是    | callback返回缩略图的PixelMap。 |
P
panqiangbiao 已提交
1443 1444 1445

**示例:**

1446
```js
P
panqiangbiao 已提交
1447
async function example() {
H
huweiqi 已提交
1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465
  let fileKeyObj = mediaLibrary.FileKey;
  let imageType = mediaLibrary.MediaType.IMAGE;
  let getImageOp = {
    selections: fileKeyObj.MEDIA_TYPE + '= ?',
    selectionArgs: [imageType.toString()],
    order: fileKeyObj.DATE_ADDED + ' DESC',
  };
  let size = { width: 720, height: 720 };
  const fetchFileResult = await media.getFileAssets(getImageOp);
  const asset = await fetchFileResult.getFirstObject();
  asset.getThumbnail(size, (error, pixelmap) => {
    if (error) {
      console.error('mediaLibrary getThumbnail failed with error: ' + error);
    } else {
      console.info('mediaLibrary getThumbnail Successful, pixelmap ' + JSON.stringify(pixelmap));
    }
  });
  fetchFileResult.close();
P
panqiangbiao 已提交
1466
}
P
panqiangbiao 已提交
1467 1468
```

P
panqiangbiao 已提交
1469
### getThumbnail<sup>8+</sup>
P
panqiangbiao 已提交
1470

P
panqiangbiao 已提交
1471
getThumbnail(size?: Size): Promise&lt;image.PixelMap&gt;
P
panqiangbiao 已提交
1472 1473 1474

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

P
panqiangbiao 已提交
1475
**需要权限**:ohos.permission.READ_MEDIA
P
panqiangbiao 已提交
1476

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

P
panqiangbiao 已提交
1479 1480
**参数:**

H
HelloCrease 已提交
1481 1482
| 参数名  | 类型             | 必填   | 说明    |
| ---- | -------------- | ---- | ----- |
H
huweiqi 已提交
1483
| size | [Size](#size8) | 否    | 缩略图尺寸。 |
P
panqiangbiao 已提交
1484 1485 1486

**返回值:**

H
HelloCrease 已提交
1487 1488
| 类型                            | 说明                    |
| ----------------------------- | --------------------- |
H
huweiqi 已提交
1489
| Promise&lt;image.PixelMap&gt; | Promise对象,返回缩略图的PixelMap。 |
P
panqiangbiao 已提交
1490 1491 1492

**示例:**

1493
```js
P
panqiangbiao 已提交
1494
async function example() {
H
huweiqi 已提交
1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510
  let fileKeyObj = mediaLibrary.FileKey;
  let imageType = mediaLibrary.MediaType.IMAGE;
  let getImageOp = {
    selections: fileKeyObj.MEDIA_TYPE + '= ?',
    selectionArgs: [imageType.toString()],
    order: fileKeyObj.DATE_ADDED + ' DESC',
  };
  let size = { width: 720, height: 720 };
  const fetchFileResult = await media.getFileAssets(getImageOp);
  const asset = await fetchFileResult.getFirstObject();
  asset.getThumbnail(size).then((pixelmap) => {
    console.info('mediaLibrary getThumbnail Successful, pixelmap ' + JSON.stringify(pixelmap));
  }).catch((error) => {
    console.error('mediaLibrary getThumbnail failed with error: ' + error);
  });
  fetchFileResult.close();
P
panqiangbiao 已提交
1511
}
P
panqiangbiao 已提交
1512 1513
```

P
panqiangbiao 已提交
1514
### favorite<sup>8+</sup>
P
panqiangbiao 已提交
1515

P
panqiangbiao 已提交
1516
favorite(isFavorite: boolean, callback: AsyncCallback&lt;void&gt;): void
P
panqiangbiao 已提交
1517 1518 1519

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

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

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

P
panqiangbiao 已提交
1524 1525
**参数:**

H
HelloCrease 已提交
1526 1527
| 参数名        | 类型                        | 必填   | 说明                                 |
| ---------- | ------------------------- | ---- | ---------------------------------- |
H
huweiqi 已提交
1528 1529
| isFavorite | boolean                   | 是    | 是否设置为收藏文件, true:设置为收藏文件,false:取消收藏。 |
| callback   | AsyncCallback&lt;void&gt; | 是    | callback返回空。                              |
P
panqiangbiao 已提交
1530 1531 1532

**示例:**

1533
```js
P
panqiangbiao 已提交
1534
async function example() {
H
huweiqi 已提交
1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551
  let fileKeyObj = mediaLibrary.FileKey;
  let imageType = mediaLibrary.MediaType.IMAGE;
  let getImageOp = {
    selections: fileKeyObj.MEDIA_TYPE + '= ?',
    selectionArgs: [imageType.toString()],
    order: fileKeyObj.DATE_ADDED + ' DESC',
  };
  const fetchFileResult = await media.getFileAssets(getImageOp);
  const asset = await fetchFileResult.getFirstObject();
  asset.favorite(true,(error) => {
    if (error) {
      console.error('mediaLibrary favorite failed with error: ' + error);
    } else {
      console.info('mediaLibrary favorite Successful');
    }
  });
  fetchFileResult.close();
P
panqiangbiao 已提交
1552
}
P
panqiangbiao 已提交
1553 1554
```

P
panqiangbiao 已提交
1555
### favorite<sup>8+</sup>
P
panqiangbiao 已提交
1556

P
panqiangbiao 已提交
1557
favorite(isFavorite: boolean): Promise&lt;void&gt;
P
panqiangbiao 已提交
1558 1559 1560

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

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

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

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

H
HelloCrease 已提交
1567 1568
| 参数名        | 类型      | 必填   | 说明                                 |
| ---------- | ------- | ---- | ---------------------------------- |
H
huweiqi 已提交
1569
| isFavorite | boolean | 是    | 是否设置为收藏文件, true:设置为收藏文件,false:取消收藏。 |
P
panqiangbiao 已提交
1570 1571 1572

**返回值:**

H
HelloCrease 已提交
1573 1574
| 类型                  | 说明         |
| ------------------- | ---------- |
H
huweiqi 已提交
1575
| Promise&lt;void&gt; | Promise对象,返回空。 |
P
panqiangbiao 已提交
1576 1577 1578

**示例:**

1579
```js
P
panqiangbiao 已提交
1580
async function example() {
H
huweiqi 已提交
1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595
  let fileKeyObj = mediaLibrary.FileKey;
  let imageType = mediaLibrary.MediaType.IMAGE;
  let getImageOp = {
    selections: fileKeyObj.MEDIA_TYPE + '= ?',
    selectionArgs: [imageType.toString()],
    order: fileKeyObj.DATE_ADDED + ' DESC',
  };
  const fetchFileResult = await media.getFileAssets(getImageOp);
  const asset = await fetchFileResult.getFirstObject();
  asset.favorite(true).then(() => {
    console.info('mediaLibrary favorite Successful');
  }).catch((error) => {
    console.error('mediaLibrary favorite failed with error: ' + error);
  });
  fetchFileResult.close();
P
panqiangbiao 已提交
1596
}
P
panqiangbiao 已提交
1597 1598
```

P
panqiangbiao 已提交
1599
### isFavorite<sup>8+</sup>
P
panqiangbiao 已提交
1600

P
panqiangbiao 已提交
1601
isFavorite(callback: AsyncCallback&lt;boolean&gt;): void
P
panqiangbiao 已提交
1602 1603 1604

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

P
panqiangbiao 已提交
1605
**需要权限**:ohos.permission.READ_MEDIA
P
panqiangbiao 已提交
1606

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

P
panqiangbiao 已提交
1609 1610
**参数:**

H
HelloCrease 已提交
1611 1612
| 参数名      | 类型                           | 必填   | 说明          |
| -------- | ---------------------------- | ---- | ----------- |
H
huweiqi 已提交
1613
| callback | AsyncCallback&lt;boolean&gt; | 是    | callback返回boolean值,值为true则为已收藏,值为false则为未收藏。 |
P
panqiangbiao 已提交
1614 1615 1616

**示例:**

1617
```js
P
panqiangbiao 已提交
1618
async function example() {
H
huweiqi 已提交
1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635
  let fileKeyObj = mediaLibrary.FileKey;
  let imageType = mediaLibrary.MediaType.IMAGE;
  let getImageOp = {
    selections: fileKeyObj.MEDIA_TYPE + '= ?',
    selectionArgs: [imageType.toString()],
    order: fileKeyObj.DATE_ADDED + ' DESC',
  };
  const fetchFileResult = await media.getFileAssets(getImageOp);
  const asset = await fetchFileResult.getFirstObject();
  asset.isFavorite((error, isFavorite) => {
    if (error) {
      console.error('mediaLibrary favoriisFavoritete failed with error: ' + error);
    } else {
      console.info('mediaLibrary isFavorite Successful, isFavorite result: ' + isFavorite);
    }
  });
  fetchFileResult.close();
P
panqiangbiao 已提交
1636
}
P
panqiangbiao 已提交
1637 1638
```

P
panqiangbiao 已提交
1639
### isFavorite<sup>8+</sup>
P
panqiangbiao 已提交
1640

P
panqiangbiao 已提交
1641
isFavorite():Promise&lt;boolean&gt;
P
panqiangbiao 已提交
1642 1643 1644

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

P
panqiangbiao 已提交
1645
**需要权限**:ohos.permission.READ_MEDIA
P
panqiangbiao 已提交
1646

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

P
panqiangbiao 已提交
1649 1650
**返回值:**

H
HelloCrease 已提交
1651 1652
| 类型                     | 说明                 |
| ---------------------- | ------------------ |
H
huweiqi 已提交
1653
| Promise&lt;boolean&gt; | Promise对象,返回boolean值,值为true则为已收藏,值为false则为未收藏。 |
P
panqiangbiao 已提交
1654 1655 1656

**示例:**

1657
```js
P
panqiangbiao 已提交
1658
async function example() {
H
huweiqi 已提交
1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673
  let fileKeyObj = mediaLibrary.FileKey;
  let imageType = mediaLibrary.MediaType.IMAGE;
  let getImageOp = {
    selections: fileKeyObj.MEDIA_TYPE + '= ?',
    selectionArgs: [imageType.toString()],
    order: fileKeyObj.DATE_ADDED + ' DESC',
  };
  const fetchFileResult = await media.getFileAssets(getImageOp);
  const asset = await fetchFileResult.getFirstObject();
  asset.isFavorite().then((isFavorite) => {
    console.info('mediaLibrary isFavorite Successful, isFavorite result: ' + isFavorite);
  }).catch((error) => {
    console.error('mediaLibrary favoriisFavoritete failed with error: ' + error);
  });
  fetchFileResult.close();
P
panqiangbiao 已提交
1674
}
P
panqiangbiao 已提交
1675 1676
```

P
panqiangbiao 已提交
1677
### trash<sup>8+</sup>
P
panqiangbiao 已提交
1678

A
AOL 已提交
1679
trash(isTrash: boolean, callback: AsyncCallback&lt;void&gt;): void
P
panqiangbiao 已提交
1680 1681 1682

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

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

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

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

P
panqiangbiao 已提交
1689 1690
**参数:**

H
HelloCrease 已提交
1691 1692
| 参数名      | 类型                        | 必填   | 说明        |
| -------- | ------------------------- | ---- | --------- |
H
huweiqi 已提交
1693 1694
| isTrash  | boolean                   | 是    | 是否设置为垃圾文件。 |
| callback | AsyncCallback&lt;void&gt; | 是    | callback返回空。     |
P
panqiangbiao 已提交
1695 1696 1697

**示例:**

1698
```js
P
panqiangbiao 已提交
1699
async function example() {
H
huweiqi 已提交
1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716
  let fileKeyObj = mediaLibrary.FileKey;
  let imageType = mediaLibrary.MediaType.IMAGE;
  let getImageOp = {
    selections: fileKeyObj.MEDIA_TYPE + '= ?',
    selectionArgs: [imageType.toString()],
    order: fileKeyObj.DATE_ADDED + ' DESC',
  };
  const fetchFileResult = await media.getFileAssets(getImageOp);
  const asset = await fetchFileResult.getFirstObject();
  asset.trash(true, (error) => {
    if (error) {
      console.error('mediaLibrary trash failed with error: ' + error);
    } else {
      console.info('mediaLibrary trash Successful');
    }
  });
  fetchFileResult.close();
P
panqiangbiao 已提交
1717
}
P
panqiangbiao 已提交
1718 1719
```

P
panqiangbiao 已提交
1720
### trash<sup>8+</sup>
P
panqiangbiao 已提交
1721

A
AOL 已提交
1722
trash(isTrash: boolean): Promise&lt;void&gt;
P
panqiangbiao 已提交
1723 1724 1725

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

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

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

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

P
panqiangbiao 已提交
1732 1733
**参数:**

H
HelloCrease 已提交
1734 1735
| 参数名     | 类型      | 必填   | 说明        |
| ------- | ------- | ---- | --------- |
H
huweiqi 已提交
1736
| isTrash | boolean | 是    | 是否设置为垃圾文件。 |
P
panqiangbiao 已提交
1737 1738 1739

**返回值:**

H
HelloCrease 已提交
1740 1741
| 类型                  | 说明         |
| ------------------- | ---------- |
H
huweiqi 已提交
1742
| Promise&lt;void&gt; | Promise对象,返回空 |
P
panqiangbiao 已提交
1743 1744 1745

**示例:**

1746
```js
P
panqiangbiao 已提交
1747
async function example() {
H
huweiqi 已提交
1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762
  let fileKeyObj = mediaLibrary.FileKey;
  let imageType = mediaLibrary.MediaType.IMAGE;
  let getImageOp = {
    selections: fileKeyObj.MEDIA_TYPE + '= ?',
    selectionArgs: [imageType.toString()],
    order: fileKeyObj.DATE_ADDED + ' DESC',
  };
  const fetchFileResult = await media.getFileAssets(getImageOp);
  const asset = await fetchFileResult.getFirstObject();
  asset.trash(true).then(() => {
    console.info('trash successfully');
  }).catch((error) => {
    console.error('trash failed with error: ' + error);
  });
  fetchFileResult.close();
P
panqiangbiao 已提交
1763
}
P
panqiangbiao 已提交
1764 1765
```

P
panqiangbiao 已提交
1766
### isTrash<sup>8+</sup>
P
panqiangbiao 已提交
1767

P
panqiangbiao 已提交
1768
isTrash(callback: AsyncCallback&lt;boolean&gt;): void
P
panqiangbiao 已提交
1769 1770 1771

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

P
panqiangbiao 已提交
1772
**需要权限**:ohos.permission.READ_MEDIA
P
panqiangbiao 已提交
1773

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

P
panqiangbiao 已提交
1776 1777
**参数:**

H
HelloCrease 已提交
1778 1779
| 参数名      | 类型                           | 必填   | 说明              |
| -------- | ---------------------------- | ---- | --------------- |
H
huweiqi 已提交
1780
| callback | AsyncCallback&lt;boolean&gt; | 是    | callback返回boolean值,值为true则为垃圾文件,值为false则为非垃圾文件。 |
P
panqiangbiao 已提交
1781 1782 1783

**示例:**

1784
```js
P
panqiangbiao 已提交
1785
async function example() {
H
huweiqi 已提交
1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802
  let fileKeyObj = mediaLibrary.FileKey;
  let imageType = mediaLibrary.MediaType.IMAGE;
  let getImageOp = {
    selections: fileKeyObj.MEDIA_TYPE + '= ?',
    selectionArgs: [imageType.toString()],
    order: fileKeyObj.DATE_ADDED + ' DESC',
  };
  const fetchFileResult = await media.getFileAssets(getImageOp);
  const asset = await fetchFileResult.getFirstObject();
  asset.isTrash((error, isTrash) => {
    if (error) {
      console.error('Failed to get trash state failed with error: ' + error);
      return;
    }
    console.info('Get trash state successfully, isTrash result: ' + isTrash);
  });
  fetchFileResult.close();
P
panqiangbiao 已提交
1803
}
P
panqiangbiao 已提交
1804 1805
```

P
panqiangbiao 已提交
1806
### isTrash<sup>8+</sup>
P
panqiangbiao 已提交
1807

P
panqiangbiao 已提交
1808
isTrash():Promise&lt;boolean&gt;
P
panqiangbiao 已提交
1809

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

P
panqiangbiao 已提交
1812
**需要权限**:ohos.permission.READ_MEDIA
P
panqiangbiao 已提交
1813

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

P
panqiangbiao 已提交
1816 1817
**返回值:**

H
HelloCrease 已提交
1818 1819
| 类型                  | 说明                   |
| ------------------- | -------------------- |
H
huweiqi 已提交
1820
| Promise&lt;void&gt; | Promise对象,返回boolean值,值为true则为垃圾文件,值为false则为非垃圾文件。 |
P
panqiangbiao 已提交
1821 1822 1823

**示例:**

1824
```js
P
panqiangbiao 已提交
1825
async function example() {
H
huweiqi 已提交
1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840
  let fileKeyObj = mediaLibrary.FileKey;
  let imageType = mediaLibrary.MediaType.IMAGE;
  let getImageOp = {
    selections: fileKeyObj.MEDIA_TYPE + '= ?',
    selectionArgs: [imageType.toString()],
    order: fileKeyObj.DATE_ADDED + ' DESC',
  };
  const fetchFileResult = await media.getFileAssets(getImageOp);
  const asset = await fetchFileResult.getFirstObject();
  asset.isTrash().then((isTrash) => {
    console.info('isTrash result: ' + isTrash);
  }).catch((error) => {
    console.error('isTrash failed with error: ' + error);
  });
  fetchFileResult.close();
P
panqiangbiao 已提交
1841
}
P
panqiangbiao 已提交
1842 1843
```

Z
zengyawen 已提交
1844
## FetchFileResult<sup>7+</sup>
P
panqiangbiao 已提交
1845 1846 1847

文件检索结果集。

Z
zengyawen 已提交
1848
### getCount<sup>7+</sup>
P
panqiangbiao 已提交
1849

P
panqiangbiao 已提交
1850
getCount(): number
P
panqiangbiao 已提交
1851 1852 1853

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

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

H
huweiqi 已提交
1856
**返回值:**
P
panqiangbiao 已提交
1857

H
HelloCrease 已提交
1858 1859
| 类型     | 说明       |
| ------ | -------- |
H
huweiqi 已提交
1860
| number | 检索到的文件总数。 |
P
panqiangbiao 已提交
1861

H
huweiqi 已提交
1862
**示例:**
P
panqiangbiao 已提交
1863

1864
```js
P
panqiangbiao 已提交
1865
async function example() {
H
huweiqi 已提交
1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876
  let fileKeyObj = mediaLibrary.FileKey;
  let fileType = mediaLibrary.MediaType.FILE;
  let getFileCountOneOp = {
    selections: fileKeyObj.MEDIA_TYPE + '= ?',
    selectionArgs: [fileType.toString()],
    order: fileKeyObj.DATE_ADDED + ' DESC',
  };
  let fetchFileResult = await media.getFileAssets(getFileCountOneOp);
  const fetchCount = fetchFileResult.getCount();
  console.info('fetchCount result: ' + fetchCount);
  fetchFileResult.close();
P
panqiangbiao 已提交
1877
}
P
panqiangbiao 已提交
1878 1879
```

Z
zengyawen 已提交
1880
### isAfterLast<sup>7+</sup>
P
panqiangbiao 已提交
1881

P
panqiangbiao 已提交
1882
isAfterLast(): boolean
P
panqiangbiao 已提交
1883 1884 1885

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

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

H
huweiqi 已提交
1888
**返回值:**
P
panqiangbiao 已提交
1889

H
HelloCrease 已提交
1890 1891
| 类型      | 说明                                 |
| ------- | ---------------------------------- |
P
panqiangbiao 已提交
1892
| boolean | 当读到最后一条记录后,后续没有记录返回true,否则返回false。 |
P
panqiangbiao 已提交
1893

H
huweiqi 已提交
1894
**示例:**
P
panqiangbiao 已提交
1895

1896
```js
P
panqiangbiao 已提交
1897
async function example() {
H
huweiqi 已提交
1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914
  let fileKeyObj = mediaLibrary.FileKey;
  let imageType = mediaLibrary.MediaType.IMAGE;
  let getImageOp = {
    selections: fileKeyObj.MEDIA_TYPE + '= ?',
    selectionArgs: [imageType.toString()],
    order: fileKeyObj.DATE_ADDED + ' DESC',
  };
  let fetchFileResult = await media.getFileAssets(getImageOp);
  const fetchCount = fetchFileResult.getCount();
  console.info('mediaLibrary fetchFileResult.getCount, count:' + fetchCount);
  let fileAsset = await fetchFileResult.getFirstObject();
  for (var i = 1; i < fetchCount; i++) {
    fileAsset = await fetchFileResult.getNextObject();
    if(i == fetchCount - 1) {
      var result = fetchFileResult.isAfterLast();
      console.info('mediaLibrary fileAsset isAfterLast result: ' + result);
      fetchFileResult.close();
P
panqiangbiao 已提交
1915
    }
H
huweiqi 已提交
1916
  }
P
panqiangbiao 已提交
1917
}
P
panqiangbiao 已提交
1918 1919
```

Z
zengyawen 已提交
1920
### close<sup>7+</sup>
P
panqiangbiao 已提交
1921

P
panqiangbiao 已提交
1922
close(): void
P
panqiangbiao 已提交
1923 1924 1925

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

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

H
huweiqi 已提交
1928
**示例:**
P
panqiangbiao 已提交
1929

1930
```js
P
panqiangbiao 已提交
1931
async function example() {
H
huweiqi 已提交
1932 1933 1934 1935 1936 1937 1938 1939 1940
  let fileKeyObj = mediaLibrary.FileKey;
  let imageType = mediaLibrary.MediaType.IMAGE;
  let getImageOp = {
    selections: fileKeyObj.MEDIA_TYPE + '= ?',
    selectionArgs: [imageType.toString()],
    order: fileKeyObj.DATE_ADDED + ' DESC',
  };
  let fetchFileResult = await media.getFileAssets(getImageOp);
  fetchFileResult.close();
P
panqiangbiao 已提交
1941
}
P
panqiangbiao 已提交
1942 1943
```

Z
zengyawen 已提交
1944
### getFirstObject<sup>7+</sup>
P
panqiangbiao 已提交
1945

P
panqiangbiao 已提交
1946
getFirstObject(callback: AsyncCallback&lt;FileAsset&gt;): void
P
panqiangbiao 已提交
1947 1948 1949

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

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

H
huweiqi 已提交
1952
**参数:**
P
panqiangbiao 已提交
1953

Z
zengyawen 已提交
1954 1955
| 参数名   | 类型                                          | 必填 | 说明                                        |
| -------- | --------------------------------------------- | ---- | ------------------------------------------- |
H
huweiqi 已提交
1956
| callback | AsyncCallback&lt;[FileAsset](#fileasset7)&gt; | 是   | callback返回文件检索结果集中第一个FileAsset对象。 |
P
panqiangbiao 已提交
1957

H
huweiqi 已提交
1958
**示例:**
P
panqiangbiao 已提交
1959

1960
```js
P
panqiangbiao 已提交
1961
async function example() {
H
huweiqi 已提交
1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977
  let fileKeyObj = mediaLibrary.FileKey;
  let imageType = mediaLibrary.MediaType.IMAGE;
  let getImageOp = {
    selections: fileKeyObj.MEDIA_TYPE + '= ?',
    selectionArgs: [imageType.toString()],
    order: fileKeyObj.DATE_ADDED + ' DESC',
  };
  let fetchFileResult = await media.getFileAssets(getImageOp);
  fetchFileResult.getFirstObject((error, fileAsset) => {
    if (error) {
      console.error('fetchFileResult getFirstObject failed with error: ' + error);
      return;
    }
    console.info('getFirstObject successfully, displayName : ' + fileAsset.displayName);
    fetchFileResult.close();
  })
P
panqiangbiao 已提交
1978
}
P
panqiangbiao 已提交
1979 1980
```

Z
zengyawen 已提交
1981
### getFirstObject<sup>7+</sup>
P
panqiangbiao 已提交
1982

P
panqiangbiao 已提交
1983
getFirstObject(): Promise&lt;FileAsset&gt;
P
panqiangbiao 已提交
1984

Z
zengyawen 已提交
1985
获取文件检索结果中的第一个文件资产。此方法使用Promise方式返回FileAsset。
P
panqiangbiao 已提交
1986

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

H
huweiqi 已提交
1989
**返回值:**
P
panqiangbiao 已提交
1990

Z
zengyawen 已提交
1991 1992
| 类型                                    | 说明                       |
| --------------------------------------- | -------------------------- |
H
huweiqi 已提交
1993
| Promise&lt;[FileAsset](#fileasset7)&gt; | Promise对象,返回文件检索结果集中第一个FileAsset。 |
P
panqiangbiao 已提交
1994

H
huweiqi 已提交
1995
**示例:**
P
panqiangbiao 已提交
1996

1997
```js
P
panqiangbiao 已提交
1998
async function example() {
H
huweiqi 已提交
1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012
  let fileKeyObj = mediaLibrary.FileKey;
  let imageType = mediaLibrary.MediaType.IMAGE;
  let getImageOp = {
    selections: fileKeyObj.MEDIA_TYPE + '= ?',
    selectionArgs: [imageType.toString()],
    order: fileKeyObj.DATE_ADDED + ' DESC',
  };
  let fetchFileResult = await media.getFileAssets(getImageOp);
  fetchFileResult.getFirstObject().then((fileAsset) => {
    console.info('getFirstObject successfully, displayName: ' + fileAsset.displayName);
    fetchFileResult.close();
  }).catch((error) => {
    console.error('getFirstObject failed with error: ' + error);
  });
P
panqiangbiao 已提交
2013
}
P
panqiangbiao 已提交
2014 2015
```

Z
zengyawen 已提交
2016
### getNextObject<sup>7+</sup>
P
panqiangbiao 已提交
2017

H
huweiqi 已提交
2018
getNextObject(callback: AsyncCallback&lt;FileAsset&gt;): void
P
panqiangbiao 已提交
2019

H
huweiqi 已提交
2020 2021 2022
获取文件检索结果中的下一个文件资产,此方法使用callback形式返回结果。

> **说明**: 在使用前需要先使用[getFirstObject](#getfirstobject7)接口获取第一个文件资产,然后使用[isAfterLast](#isafterlast7)确认文件检索集当前不是指向最后一个时方可使用此接口。
P
panqiangbiao 已提交
2023

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

H
huweiqi 已提交
2026
**参数:**
P
panqiangbiao 已提交
2027

Z
zengyawen 已提交
2028 2029
| 参数名    | 类型                                          | 必填 | 说明                                      |
| --------- | --------------------------------------------- | ---- | ----------------------------------------- |
H
huweiqi 已提交
2030
| callbacke | AsyncCallback&lt;[FileAsset](#fileasset7)&gt; | 是   | callback返回文件检索结果集中下一个FileAsset对象。 |
P
panqiangbiao 已提交
2031

H
huweiqi 已提交
2032
**示例:**
P
panqiangbiao 已提交
2033

2034
```js
P
panqiangbiao 已提交
2035
async function example() {
H
huweiqi 已提交
2036 2037 2038 2039 2040 2041 2042 2043 2044 2045 2046 2047 2048 2049 2050 2051 2052 2053 2054 2055
  let fileKeyObj = mediaLibrary.FileKey;
  let imageType = mediaLibrary.MediaType.IMAGE;
  let getImageOp = {
    selections: fileKeyObj.MEDIA_TYPE + '= ?',
    selectionArgs: [imageType.toString()],
    order: fileKeyObj.DATE_ADDED + ' DESC',
  };
  let fetchFileResult = await media.getFileAssets(getImageOp);
  let fileAsset = await fetchFileResult.getFirstObject();
  console.log('fetchFileResult getFirstObject successfully, displayName: ' + fileAsset.displayName);
  if (!fetchFileResult.isAfterLast()) {
    fetchFileResult.getNextObject((error, fileAsset) => {
      if (error) {
        console.error('fetchFileResult getNextObject failed with error: ' + error);
        return;
      }
      console.log('fetchFileResult getNextObject successfully, displayName: ' + fileAsset.displayName);
      fetchFileResult.close();
    })
  }
P
panqiangbiao 已提交
2056
}
H
huweiqi 已提交
2057

P
panqiangbiao 已提交
2058 2059
```

Z
zengyawen 已提交
2060
### getNextObject<sup>7+</sup>
P
panqiangbiao 已提交
2061

H
huweiqi 已提交
2062
getNextObject(): Promise&lt;FileAsset&gt;
P
panqiangbiao 已提交
2063 2064 2065

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

H
huweiqi 已提交
2066 2067
> **说明**: 在使用前需要先使用[getFirstObject](#getfirstobject7)接口获取第一个文件资产,然后使用[isAfterLast](#isafterlast7)确认文件检索集当前不是指向最后一个时方可使用此接口。

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

H
huweiqi 已提交
2070
**返回值:**
P
panqiangbiao 已提交
2071

Z
zengyawen 已提交
2072 2073
| 类型                                    | 说明              |
| --------------------------------------- | ----------------- |
H
huweiqi 已提交
2074
| Promise&lt;[FileAsset](#fileasset7)&gt; | Promise对象,返回文件检索结果集中下一个FileAsset。 |
P
panqiangbiao 已提交
2075

H
huweiqi 已提交
2076
**示例:**
P
panqiangbiao 已提交
2077

2078
```js
P
panqiangbiao 已提交
2079
async function example() {
H
huweiqi 已提交
2080 2081 2082 2083 2084 2085 2086 2087 2088 2089 2090 2091 2092 2093 2094 2095 2096 2097
  let fileKeyObj = mediaLibrary.FileKey;
  let imageType = mediaLibrary.MediaType.IMAGE;
  let getImageOp = {
    selections: fileKeyObj.MEDIA_TYPE + '= ?',
    selectionArgs: [imageType.toString()],
    order: fileKeyObj.DATE_ADDED + ' DESC',
  };
  let fetchFileResult = await media.getFileAssets(getImageOp);
  let fileAsset = await fetchFileResult.getFirstObject();
  console.log('fetchFileResult getFirstObject successfully, displayName: ' + fileAsset.displayName);
  if (!fetchFileResult.isAfterLast()) {
    fetchFileResult.getNextObject().then((fileAsset) => {
      console.info('fetchFileResult getNextObject successfully, displayName: ' + fileAsset.displayName);
      fetchFileResult.close();
    }).catch((error) => {
      console.error('fetchFileResult getNextObject failed with error: ' + error);
    })
  }
P
panqiangbiao 已提交
2098
}
P
panqiangbiao 已提交
2099 2100
```

Z
zengyawen 已提交
2101
### getLastObject<sup>7+</sup>
P
panqiangbiao 已提交
2102

P
panqiangbiao 已提交
2103
getLastObject(callback: AsyncCallback&lt;FileAsset&gt;): void
P
panqiangbiao 已提交
2104 2105 2106

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

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

H
huweiqi 已提交
2109
**参数:**
P
panqiangbiao 已提交
2110

Z
zengyawen 已提交
2111 2112
| 参数名   | 类型                                          | 必填 | 说明                        |
| -------- | --------------------------------------------- | ---- | --------------------------- |
H
huweiqi 已提交
2113
| callback | AsyncCallback&lt;[FileAsset](#fileasset7)&gt; | 是   | callback返回文件检索结果集中最后一个FileAsset对象。 |
P
panqiangbiao 已提交
2114

H
huweiqi 已提交
2115
**示例:**
P
panqiangbiao 已提交
2116

2117
```js
P
panqiangbiao 已提交
2118
async function example() {
H
huweiqi 已提交
2119 2120 2121 2122 2123 2124 2125 2126 2127 2128 2129 2130 2131 2132 2133 2134
  let fileKeyObj = mediaLibrary.FileKey;
  let imageType = mediaLibrary.MediaType.IMAGE;
  let getImageOp = {
    selections: fileKeyObj.MEDIA_TYPE + '= ?',
    selectionArgs: [imageType.toString()],
    order: fileKeyObj.DATE_ADDED + ' DESC',
  };
  let fetchFileResult = await media.getFileAssets(getImageOp);
  fetchFileResult.getLastObject((error, fileAsset) => {
    if (error) {
      console.error('getLastObject failed with error: ' + error);
      return;
    }
    console.info('getLastObject successfully, displayName: ' + fileAsset.displayName);
    fetchFileResult.close();
  })
P
panqiangbiao 已提交
2135
}
P
panqiangbiao 已提交
2136 2137
```

Z
zengyawen 已提交
2138
### getLastObject<sup>7+</sup>
P
panqiangbiao 已提交
2139

P
panqiangbiao 已提交
2140
getLastObject(): Promise&lt;FileAsset&gt;
P
panqiangbiao 已提交
2141 2142 2143

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

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

H
huweiqi 已提交
2146
**返回值:**
P
panqiangbiao 已提交
2147

Z
zengyawen 已提交
2148 2149
| 类型                                    | 说明              |
| --------------------------------------- | ----------------- |
H
huweiqi 已提交
2150
| Promise&lt;[FileAsset](#fileasset7)&gt; | Promise对象,返回文件检索结果集中最后一个FileAsset。 |
P
panqiangbiao 已提交
2151

H
huweiqi 已提交
2152
**示例:**
P
panqiangbiao 已提交
2153

2154
```js
P
panqiangbiao 已提交
2155
async function example() {
H
huweiqi 已提交
2156 2157 2158 2159 2160 2161 2162 2163 2164 2165 2166 2167 2168 2169
  let fileKeyObj = mediaLibrary.FileKey;
  let imageType = mediaLibrary.MediaType.IMAGE;
  let getImageOp = {
    selections: fileKeyObj.MEDIA_TYPE + '= ?',
    selectionArgs: [imageType.toString()],
    order: fileKeyObj.DATE_ADDED + ' DESC',
  };
  let fetchFileResult = await media.getFileAssets(getImageOp);
  fetchFileResult.getLastObject().then((fileAsset) => {
    console.info('getLastObject successfully, displayName: ' + fileAsset.displayName);
    fetchFileResult.close();
  }).catch((error) => {
    console.error('getLastObject failed with error: ' + error);
  });
P
panqiangbiao 已提交
2170
}
P
panqiangbiao 已提交
2171 2172
```

Z
zengyawen 已提交
2173
### getPositionObject<sup>7+</sup>
P
panqiangbiao 已提交
2174

P
panqiangbiao 已提交
2175
getPositionObject(index: number, callback: AsyncCallback&lt;FileAsset&gt;): void
P
panqiangbiao 已提交
2176 2177 2178

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

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

H
huweiqi 已提交
2181
**参数:**
P
panqiangbiao 已提交
2182

Z
zengyawen 已提交
2183
| 参数名       | 类型                                       | 必填   | 说明                 |
H
HelloCrease 已提交
2184
| -------- | ---------------------------------------- | ---- | ------------------ |
H
huweiqi 已提交
2185 2186
| index    | number                                   | 是    | 要获取的文件的索引,从0开始(注意该值要小于文件检索集的count值)。     |
| callback | AsyncCallback&lt;[FileAsset](#fileasset7)&gt; | 是    | callback返回文件检索结果集中指定索引处的FileAsset对象。 |
P
panqiangbiao 已提交
2187

H
huweiqi 已提交
2188
**示例:**
P
panqiangbiao 已提交
2189

2190
```js
P
panqiangbiao 已提交
2191
async function example() {
H
huweiqi 已提交
2192 2193 2194 2195 2196 2197 2198 2199 2200 2201 2202 2203 2204 2205 2206 2207
  let fileKeyObj = mediaLibrary.FileKey;
  let imageType = mediaLibrary.MediaType.IMAGE;
  let getImageOp = {
    selections: fileKeyObj.MEDIA_TYPE + '= ?',
    selectionArgs: [imageType.toString()],
    order: fileKeyObj.DATE_ADDED + ' DESC',
  };
  let fetchFileResult = await media.getFileAssets(getImageOp);
  fetchFileResult.getPositionObject(0, (error, fileAsset) => {
    if (error) {
      console.error('getPositionObject failed with error: ' + error);
      return;
    }
    console.info('getPositionObject successfully, displayName: ' + fileAsset.displayName);
    fetchFileResult.close();
  })
P
panqiangbiao 已提交
2208
}
P
panqiangbiao 已提交
2209 2210
```

Z
zengyawen 已提交
2211
### getPositionObject<sup>7+</sup>
P
panqiangbiao 已提交
2212

P
panqiangbiao 已提交
2213
getPositionObject(index: number): Promise&lt;FileAsset&gt;
P
panqiangbiao 已提交
2214 2215 2216

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

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

H
huweiqi 已提交
2219
**参数:**
P
panqiangbiao 已提交
2220

Z
zengyawen 已提交
2221
| 参数名    | 类型     | 必填   | 说明             |
H
HelloCrease 已提交
2222
| ----- | ------ | ---- | -------------- |
H
huweiqi 已提交
2223
| index | number | 是    | 要获取的文件的索引,从0开始(注意该值要小于文件检索集的count值)。 |
P
panqiangbiao 已提交
2224

H
huweiqi 已提交
2225
**返回值:**
P
panqiangbiao 已提交
2226

Z
zengyawen 已提交
2227 2228
| 类型                                    | 说明              |
| --------------------------------------- | ----------------- |
H
huweiqi 已提交
2229
| Promise&lt;[FileAsset](#fileasset7)&gt; | Promise对象,返回文件检索结果集中指定索引处的FileAsset。 |
P
panqiangbiao 已提交
2230

H
huweiqi 已提交
2231
**示例:**
P
panqiangbiao 已提交
2232

2233
```js
P
panqiangbiao 已提交
2234
async function example() {
H
huweiqi 已提交
2235 2236 2237 2238 2239 2240 2241 2242 2243 2244 2245 2246 2247 2248
  let fileKeyObj = mediaLibrary.FileKey;
  let imageType = mediaLibrary.MediaType.IMAGE;
  let getImageOp = {
    selections: fileKeyObj.MEDIA_TYPE + '= ?',
    selectionArgs: [imageType.toString()],
    order: fileKeyObj.DATE_ADDED + ' DESC',
  };
  let fetchFileResult = await media.getFileAssets(getImageOp);
  fetchFileResult.getPositionObject(0).then((fileAsset) => {
    console.info('getPositionObject successfully, displayName: ' + fileAsset.displayName);
    fetchFileResult.close();
  }).catch((error) => {
    console.error('getPositionObject failed with error: ' + error);
  });
P
panqiangbiao 已提交
2249
}
P
panqiangbiao 已提交
2250 2251
```

Z
zengyawen 已提交
2252
### getAllObject<sup>7+</sup>
P
panqiangbiao 已提交
2253

P
panqiangbiao 已提交
2254
getAllObject(callback: AsyncCallback&lt;Array&lt;FileAsset&gt;&gt;): void
P
panqiangbiao 已提交
2255 2256 2257

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

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

H
huweiqi 已提交
2260
**参数:**
P
panqiangbiao 已提交
2261

Z
zengyawen 已提交
2262
| 参数名       | 类型                                       | 必填   | 说明                   |
H
HelloCrease 已提交
2263
| -------- | ---------------------------------------- | ---- | -------------------- |
H
huweiqi 已提交
2264
| callback | AsyncCallback&lt;Array&lt;[FileAsset](#fileasset7)&gt;&gt; | 是    | callback返回文件检索结果集中所有的FileAsset对象。 |
P
panqiangbiao 已提交
2265

H
huweiqi 已提交
2266
**示例:**
P
panqiangbiao 已提交
2267

2268
```js
P
panqiangbiao 已提交
2269
async function example() {
H
huweiqi 已提交
2270 2271 2272 2273 2274 2275 2276 2277 2278 2279 2280 2281 2282 2283 2284 2285 2286 2287
  let fileKeyObj = mediaLibrary.FileKey;
  let imageType = mediaLibrary.MediaType.IMAGE;
  let getImageOp = {
    selections: fileKeyObj.MEDIA_TYPE + '= ?',
    selectionArgs: [imageType.toString()],
    order: fileKeyObj.DATE_ADDED + ' DESC',
  };
  let fetchFileResult = await media.getFileAssets(getImageOp);
  fetchFileResult.getAllObject((error, fileAssetList) => {
    if (error) {
      console.error('getAllObject failed with error: ' + error);
      return;
    }
    for (let i = 0; i < fetchFileResult.getCount(); i++) {
      console.info('getAllObject fileAssetList ' + i + ' displayName: ' + fileAssetList[i].displayName);
    }
    fetchFileResult.close();
  })
P
panqiangbiao 已提交
2288
}
P
panqiangbiao 已提交
2289 2290
```

Z
zengyawen 已提交
2291
### getAllObject<sup>7+</sup>
P
panqiangbiao 已提交
2292

P
panqiangbiao 已提交
2293
getAllObject(): Promise&lt;Array&lt;FileAsset&gt;&gt;
P
panqiangbiao 已提交
2294 2295 2296

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

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

H
huweiqi 已提交
2299
**返回值:**
P
panqiangbiao 已提交
2300

Z
zengyawen 已提交
2301 2302
| 类型                                     | 说明                  |
| ---------------------------------------- | --------------------- |
H
huweiqi 已提交
2303
| Promise&lt;Array&lt;[FileAsset](#fileasset7)&gt;&gt; | Promise对象,返回文件检索结果集中所有的FileAsset。 |
P
panqiangbiao 已提交
2304

H
huweiqi 已提交
2305
**示例:**
P
panqiangbiao 已提交
2306

2307
```js
P
panqiangbiao 已提交
2308
async function example() {
H
huweiqi 已提交
2309 2310 2311 2312 2313 2314 2315 2316 2317 2318 2319 2320 2321 2322 2323 2324
  let fileKeyObj = mediaLibrary.FileKey;
  let imageType = mediaLibrary.MediaType.IMAGE;
  let getImageOp = {
    selections: fileKeyObj.MEDIA_TYPE + '= ?',
    selectionArgs: [imageType.toString()],
    order: fileKeyObj.DATE_ADDED + ' DESC',
  };
  let fetchFileResult = await media.getFileAssets(getImageOp);
  fetchFileResult.getAllObject().then((fileAssetList) => {
    for (let i = 0; i < fetchFileResult.getCount(); i++) {
      console.info('getAllObject fileAssetList ' + i + ' displayName: ' + fileAssetList[i].displayName);
    } 
    fetchFileResult.close();
  }).catch((error) => {
    console.error('getAllObject failed with error: ' + error);
  });
P
panqiangbiao 已提交
2325
}
P
panqiangbiao 已提交
2326 2327
```

Z
zengyawen 已提交
2328
## Album<sup>7+</sup>
P
panqiangbiao 已提交
2329 2330 2331

实体相册

Z
zengyawen 已提交
2332
### 属性
P
panqiangbiao 已提交
2333

Z
zengyawen 已提交
2334 2335
**系统能力:** 以下各项对应的系统能力均为SystemCapability.Multimedia.MediaLibrary.Core

Z
zengyawen 已提交
2336
| 名称           | 类型    | 可读   | 可写   | 说明      |
H
HelloCrease 已提交
2337
| ------------ | ------ | ---- | ---- | ------- |
H
huweiqi 已提交
2338 2339 2340 2341 2342 2343 2344
| albumId | number | 是    | 否    | 相册编号。    |
| albumName | string | 是    | 是    | 相册名称。    |
| albumUri<sup>8+</sup> | string | 是    | 否    | 相册Uri。   |
| dateModified | number | 是    | 否    | 修改日期。    |
| count<sup>8+</sup> | number | 是    | 否    | 相册中文件数量。 |
| relativePath<sup>8+</sup> | string | 是    | 否    | 相对路径。    |
| coverUri<sup>8+</sup> | string | 是    | 否    | 封面文件Uri。 |
P
panqiangbiao 已提交
2345

P
panqiangbiao 已提交
2346 2347 2348
### commitModify<sup>8+</sup>

commitModify(callback: AsyncCallback&lt;void&gt;): void
P
panqiangbiao 已提交
2349 2350 2351

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

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

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

H
huweiqi 已提交
2356
**参数:**
P
panqiangbiao 已提交
2357

Z
zengyawen 已提交
2358 2359
| 参数名   | 类型                      | 必填 | 说明       |
| -------- | ------------------------- | ---- | ---------- |
H
huweiqi 已提交
2360
| callback | AsyncCallback&lt;void&gt; | 是   | callback返回空。 |
P
panqiangbiao 已提交
2361

H
huweiqi 已提交
2362
**示例:**
P
panqiangbiao 已提交
2363

2364
```js
P
panqiangbiao 已提交
2365
async function example() {
H
huweiqi 已提交
2366 2367 2368 2369 2370 2371 2372 2373 2374 2375 2376 2377 2378 2379
  // 获取相册需要先预置相册和资源,示例代码为预置的新建相册1。
  let AlbumNoArgsfetchOp = {
    selections: mediaLibrary.FileKey.ALBUM_NAME + '= ?',
    selectionArgs: ['新建相册1'],
  };
  const albumList = await media.getAlbums(AlbumNoArgsfetchOp);
  const album = albumList[0];
  album.albumName = 'hello';
  album.commitModify((error) => {
    if (error) {
      console.error('commitModify failed with error: ' + error);
      return;
    }
    console.info('commitModify successful.');
H
huweiqi 已提交
2380
  });
P
panqiangbiao 已提交
2381
}
P
panqiangbiao 已提交
2382 2383
```

P
panqiangbiao 已提交
2384
### commitModify<sup>8+</sup>
P
panqiangbiao 已提交
2385

P
panqiangbiao 已提交
2386
commitModify(): Promise&lt;void&gt;
P
panqiangbiao 已提交
2387 2388 2389

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

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

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

H
huweiqi 已提交
2394
**返回值:**
P
panqiangbiao 已提交
2395

H
HelloCrease 已提交
2396 2397
| 类型                  | 说明           |
| ------------------- | ------------ |
H
huweiqi 已提交
2398
| Promise&lt;void&gt; | Promise对象,返回空。 |
P
panqiangbiao 已提交
2399

H
huweiqi 已提交
2400
**示例:**
P
panqiangbiao 已提交
2401

2402
```js
P
panqiangbiao 已提交
2403
async function example() {
H
huweiqi 已提交
2404 2405 2406 2407 2408 2409 2410 2411 2412 2413 2414 2415 2416 2417 2418 2419 2420 2421 2422 2423 2424 2425 2426 2427 2428 2429
  // 获取相册需要先预置相册和资源,示例代码为预置的新建相册1。
  let AlbumNoArgsfetchOp = {
    selections: mediaLibrary.FileKey.ALBUM_NAME + '= ?',
    selectionArgs: ['新建相册1'],
  };
  const albumList = await media.getAlbums(AlbumNoArgsfetchOp);
  const album = albumList[0];
  album.albumName = 'hello';
  album.commitModify().then(() => {
    console.info('commitModify successfully');
  }).catch((error) => {
    console.error('commitModify failed with error: ' + error);
  });
}
```

### getFileAssets<sup>7+</sup>

getFileAssets(callback: AsyncCallback&lt;FetchFileResult&gt;): void

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

**需要权限**:ohos.permission.READ_MEDIA

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

H
huweiqi 已提交
2430
**参数:**
H
huweiqi 已提交
2431 2432 2433

| 参数名   | 类型                                                | 必填 | 说明                                |
| -------- | --------------------------------------------------- | ---- | ----------------------------------- |
H
huweiqi 已提交
2434
| callback | AsyncCallback<[FetchFileResult](#fetchfileresult7)> | 是   | callback返回相册中的文件检索结果集。 |
H
huweiqi 已提交
2435

H
huweiqi 已提交
2436
**示例:**
H
huweiqi 已提交
2437 2438 2439 2440 2441 2442 2443 2444 2445 2446 2447 2448 2449 2450 2451 2452 2453 2454 2455 2456 2457

```js
async function example() {
  // 获取相册需要先预置相册和资源,示例代码为预置的新建相册1。
  let AlbumNoArgsfetchOp = {
    selections: mediaLibrary.FileKey.ALBUM_NAME + '= ?',
    selectionArgs: ['新建相册1'],
  };
  // 获取符合检索要求的相册,返回相册列表。
  const albumList = await media.getAlbums(AlbumNoArgsfetchOp);
  const album = albumList[0];
  // 取到相册列表中的一个相册,获取此相册中所有符合媒体检索选项的媒体资源。
  album.getFileAssets((error, fetchFileResult) => {
    if (error) {
      console.error('album getFileAssets failed with error: ' + error);
      return;
    }
    let count = fetchFileResult.getCount();
    console.info('album getFileAssets successfully, count: ' + count);
    fetchFileResult.close();
  });
P
panqiangbiao 已提交
2458
}
P
panqiangbiao 已提交
2459 2460
```

Z
zengyawen 已提交
2461
### getFileAssets<sup>7+</sup>
P
panqiangbiao 已提交
2462

P
panqiangbiao 已提交
2463
getFileAssets(options: MediaFetchOptions, callback: AsyncCallback&lt;FetchFileResult&gt;): void
P
panqiangbiao 已提交
2464 2465 2466

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

P
panqiangbiao 已提交
2467
**需要权限**:ohos.permission.READ_MEDIA
P
panqiangbiao 已提交
2468

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

H
huweiqi 已提交
2471
**参数:**
P
panqiangbiao 已提交
2472

Z
zengyawen 已提交
2473
| 参数名   | 类型                                                | 必填 | 说明                                |
Z
zengyawen 已提交
2474
| -------- | --------------------------------------------------- | ---- | ----------------------------------- |
Z
zengyawen 已提交
2475
| options  | [MediaFetchOptions](#mediafetchoptions7)            | 是   | 媒体检索选项。                      |
H
huweiqi 已提交
2476
| callback | AsyncCallback<[FetchFileResult](#fetchfileresult7)> | 是   | callback返回相册中的文件检索结果集。 |
P
panqiangbiao 已提交
2477

H
huweiqi 已提交
2478
**示例:**
P
panqiangbiao 已提交
2479

2480
```js
P
panqiangbiao 已提交
2481
async function example() {
H
huweiqi 已提交
2482 2483 2484 2485 2486 2487 2488 2489
  // 获取相册需要先预置相册和资源,示例代码为预置的新建相册1。
  let AlbumNoArgsfetchOp = {
    selections: mediaLibrary.FileKey.ALBUM_NAME + '= ?',
    selectionArgs: ['新建相册1'],
  };
  let fileNoArgsfetchOp = {
    selections: '',
    selectionArgs: [],
H
huweiqi 已提交
2490 2491
  };
  // 获取符合检索要求的相册,返回相册列表。
H
huweiqi 已提交
2492 2493
  const albumList = await media.getAlbums(AlbumNoArgsfetchOp);
  const album = albumList[0];
H
huweiqi 已提交
2494
  // 取到相册列表中的一个相册,获取此相册中所有符合媒体检索选项的媒体资源。
H
huweiqi 已提交
2495 2496 2497 2498
  album.getFileAssets(fileNoArgsfetchOp, (error, fetchFileResult) => {
    if (error) {
      console.error('album getFileAssets failed with error: ' + error);
      return;
Z
zhang-daiyue 已提交
2499
    }
H
huweiqi 已提交
2500 2501 2502 2503
    let count = fetchFileResult.getCount();
    console.info('album getFileAssets successfully, count: ' + count);
    fetchFileResult.close();
  });
P
panqiangbiao 已提交
2504 2505 2506
}
```

Z
zengyawen 已提交
2507
### getFileAssets<sup>7+</sup>
P
panqiangbiao 已提交
2508

P
panqiangbiao 已提交
2509
 getFileAssets(options?: MediaFetchOptions): Promise&lt;FetchFileResult&gt;
P
panqiangbiao 已提交
2510

Z
zengyawen 已提交
2511
按照检索条件获取相册中的文件。此方法使用异步Promise来返回文件结果集。
P
panqiangbiao 已提交
2512

P
panqiangbiao 已提交
2513
**需要权限**:ohos.permission.READ_MEDIA
P
panqiangbiao 已提交
2514

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

H
huweiqi 已提交
2517
**参数:**
P
panqiangbiao 已提交
2518

Z
zengyawen 已提交
2519
| 参数名  | 类型                                     | 必填 | 说明           |
Z
zengyawen 已提交
2520
| ------- | ---------------------------------------- | ---- | -------------- |
Z
zengyawen 已提交
2521
| options | [MediaFetchOptions](#mediafetchoptions7) | 否   | 媒体检索选项。 |
P
panqiangbiao 已提交
2522

H
huweiqi 已提交
2523
**返回值:**
P
panqiangbiao 已提交
2524

Z
zengyawen 已提交
2525 2526
| 类型                                          | 说明                      |
| --------------------------------------------- | ------------------------- |
H
huweiqi 已提交
2527
| Promise<[FetchFileResult](#fetchfileresult7)> | Promise对象,返回相册中的文件检索结果集。 |
P
panqiangbiao 已提交
2528

H
huweiqi 已提交
2529
**示例:**
P
panqiangbiao 已提交
2530

2531
```js
P
panqiangbiao 已提交
2532
async function example() {
H
huweiqi 已提交
2533 2534 2535 2536 2537 2538 2539 2540 2541
  // 获取相册需要先预置相册和资源,示例代码为预置的新建相册1。
  let AlbumNoArgsfetchOp = {
    selections: mediaLibrary.FileKey.ALBUM_NAME + '= ?',
    selectionArgs: ['新建相册1'],
  };
  let fileNoArgsfetchOp = {
    selections: '',
    selectionArgs: [],
  };
H
huweiqi 已提交
2542
  // 获取符合检索要求的相册,返回相册列表。
H
huweiqi 已提交
2543 2544
  const albumList = await media.getAlbums(AlbumNoArgsfetchOp);
  const album = albumList[0];
H
huweiqi 已提交
2545
  // 取到相册列表中的一个相册,获取此相册中所有符合媒体检索选项的媒体资源。
H
huweiqi 已提交
2546 2547 2548 2549 2550 2551 2552
  album.getFileAssets(fileNoArgsfetchOp).then((fetchFileResult) => {
    let count = fetchFileResult.getCount();
    console.info('album getFileAssets successfully, count: ' + count);
    fetchFileResult.close();
  }).catch((error) => {
    console.error('album getFileAssets failed with error: ' + error);
  });
P
panqiangbiao 已提交
2553
}
P
panqiangbiao 已提交
2554 2555
```

P
panqiangbiao 已提交
2556
## PeerInfo<sup>8+</sup>
P
panqiangbiao 已提交
2557

P
panqiangbiao 已提交
2558
注册设备的信息。
2559 2560

**系统接口**:此接口为系统接口。
P
panqiangbiao 已提交
2561

Z
zhang-daiyue 已提交
2562
**系统能力:** 以下各项对应的系统能力均为SystemCapability.Multimedia.MediaLibrary.DistributedCore
Z
zengyawen 已提交
2563

Z
zengyawen 已提交
2564 2565
| 名称       | 类型                       | 可读 | 可写 | 说明             |
| ---------- | -------------------------- | ---- | ---- | ---------------- |
H
huweiqi 已提交
2566 2567 2568 2569
| deviceName | string                     | 是   | 否   | 注册设备的名称。   |
| networkId  | string                     | 是   | 否   | 注册设备的网络ID。 |
| deviceType | [DeviceType](#devicetype8) | 是   | 否   | 设备类型。         |
| isOnline   | boolean                    | 是   | 否   | 是否在线。         |
P
panqiangbiao 已提交
2570

Z
zengyawen 已提交
2571
## MediaType<sup>8+</sup>
P
panqiangbiao 已提交
2572 2573 2574

枚举,媒体类型。

Z
zengyawen 已提交
2575 2576
**系统能力:** 以下各项对应的系统能力均为SystemCapability.Multimedia.MediaLibrary.Core

H
huweiqi 已提交
2577 2578
| 名称  |  值 |  说明 |
| ----- |  ---- | ---- |
H
huweiqi 已提交
2579 2580 2581 2582
| FILE  |  0 | 文件。 |
| IMAGE |  1 | 图片。 |
| VIDEO |  2 | 视频。|
| AUDIO |  3 | 音频。 |
P
panqiangbiao 已提交
2583

Z
zengyawen 已提交
2584
## FileKey<sup>8+</sup>
P
panqiangbiao 已提交
2585 2586 2587

枚举,文件关键信息。

zyjhandsome's avatar
zyjhandsome 已提交
2588
> **说明:**
H
huweiqi 已提交
2589 2590
> bucket_id字段在文件重命名或移动后可能会发生变化,开发者使用前需要重新获取。

Z
zengyawen 已提交
2591 2592
**系统能力:** 以下各项对应的系统能力均为SystemCapability.Multimedia.MediaLibrary.Core

H
huweiqi 已提交
2593
| 名称          | 值              | 说明                                                       |
Z
zengyawen 已提交
2594
| ------------- | ------------------- | ---------------------------------------------------------- |
H
huweiqi 已提交
2595 2596 2597 2598 2599 2600 2601 2602 2603 2604 2605 2606 2607 2608 2609 2610 2611 2612 2613
| ID            | 'file_id'             | 文件编号。                                                   |
| RELATIVE_PATH | 'relative_path'       | 相对公共目录路径。                                           |
| DISPLAY_NAME  | 'display_name'        | 显示名字。                                                   |
| PARENT        | 'parent'              | 父目录id。                                                   |
| MIME_TYPE     | 'mime_type'           | 文件扩展属性(如:image/*、video/*、file/*)。                                             |
| 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 已提交
2614

Z
zengyawen 已提交
2615
## DirectoryType<sup>8+</sup>
P
panqiangbiao 已提交
2616 2617 2618

枚举,目录类型。

Z
zengyawen 已提交
2619 2620
**系统能力:** 以下各项对应的系统能力均为SystemCapability.Multimedia.MediaLibrary.Core

H
huweiqi 已提交
2621 2622
| 名称          | 值 |  说明               |
| ------------- | --- | ------------------ |
H
huweiqi 已提交
2623 2624 2625 2626 2627 2628
| DIR_CAMERA    |  0 | 表示Camera文件路径。 |
| DIR_VIDEO     |  1 |  表示视频路径。       |
| DIR_IMAGE     |  2 | 表示图片路径。       |
| DIR_AUDIO     |  3 | 表示音频路径。       |
| DIR_DOCUMENTS |  4 | 表示文档路径。       |
| DIR_DOWNLOAD  |  5 |  表示下载路径。       |
P
panqiangbiao 已提交
2629

Z
zengyawen 已提交
2630
## DeviceType<sup>8+</sup>
P
panqiangbiao 已提交
2631 2632

枚举,设备类型。
2633 2634

**系统接口**:此接口为系统接口。
P
panqiangbiao 已提交
2635

Z
zhang-daiyue 已提交
2636
**系统能力:** 以下各项对应的系统能力均为SystemCapability.Multimedia.MediaLibrary.DistributedCore
Z
zengyawen 已提交
2637

H
huweiqi 已提交
2638 2639
| 名称         |  值 | 说明       |
| ------------ | --- | ---------- |
H
huweiqi 已提交
2640 2641 2642 2643 2644 2645 2646
| TYPE_UNKNOWN |  0 | 未识别设备。 |
| TYPE_LAPTOP  |  1 | 笔记本电脑。 |
| TYPE_PHONE   |  2 | 手机。       |
| TYPE_TABLET  |  3 | 平板电脑。   |
| TYPE_WATCH   |  4 | 智能手表。   |
| TYPE_CAR     |  5 | 车载设备。   |
| TYPE_TV      |  6 | 电视设备。   |
P
panqiangbiao 已提交
2647

Z
zengyawen 已提交
2648
## MediaFetchOptions<sup>7+</sup>
P
panqiangbiao 已提交
2649 2650 2651

检索条件。

Z
zengyawen 已提交
2652 2653
**系统能力:** 以下各项对应的系统能力均为SystemCapability.Multimedia.MediaLibrary.Core

H
huweiqi 已提交
2654 2655
| 名称                    | 类型                | 可读 | 可写 | 说明                                                         |
| ----------------------- | ------------------- | ---- | ---- | ------------------------------------------------------------ |
H
huweiqi 已提交
2656
| selections              | string              | 是   | 是   | 检索条件,使用[FileKey](#filekey8)中的枚举值作为检索条件的列名。示例:<br/>selections: mediaLibrary.FileKey.MEDIA_TYPE + '= ? OR ' + mediaLibrary.FileKey.MEDIA_TYPE + '= ?', |
2657
| selectionArgs           | Array&lt;string&gt; | 是   | 是   | 检索条件的值,对应selections中检索条件列的值。<br/>示例:<br/>selectionArgs: [mediaLibrary.MediaType.IMAGE.toString(), mediaLibrary.MediaType.VIDEO.toString()], |
H
huweiqi 已提交
2658
| order                   | string              | 是   | 是   | 检索结果排序方式,使用[FileKey](#filekey8)中的枚举值作为检索结果排序的列,可以用升序或降序排列。示例:<br/>升序排列:order: mediaLibrary.FileKey.DATE_ADDED + ' ASC'<br/>降序排列:order: mediaLibrary.FileKey.DATE_ADDED + ' DESC' |
H
huweiqi 已提交
2659 2660 2661
| uri<sup>8+</sup>        | string              | 是   | 是   | 文件URI。                                                      |
| networkId<sup>8+</sup>  | string              | 是   | 是   | 注册设备网络ID。                                               |
| extendArgs<sup>8+</sup> | string              | 是   | 是   | 扩展的检索参数,目前没有扩展检索参数。                         |
P
panqiangbiao 已提交
2662

P
panqiangbiao 已提交
2663
## Size<sup>8+</sup>
P
panqiangbiao 已提交
2664 2665

图片尺寸。
2666 2667

**系统能力:**  以下各项对应的系统能力均为SystemCapability.Multimedia.MediaLibrary.Core
P
panqiangbiao 已提交
2668

H
HelloCrease 已提交
2669 2670
| 名称     | 类型     | 可读   | 可写   | 说明       |
| ------ | ------ | ---- | ---- | -------- |
H
huweiqi 已提交
2671 2672
| width  | number | 是    | 是    | 宽(单位:像素)。 |
| height | number | 是    | 是    | 高(单位:像素)。 |
P
panqiangbiao 已提交
2673

H
huweiqi 已提交
2674
## MediaAssetOption
P
panqiangbiao 已提交
2675 2676 2677 2678 2679

媒体资源选项。

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

H
huweiqi 已提交
2680 2681 2682 2683 2684
| 名称         | 类型   | 可读 | 可写 | 说明                                                         |
| ------------ | ------ | ---- | ---- | ------------------------------------------------------------ |
| src          | string | 是   | 是   | 本地文件应用沙箱路径。                                       |
| mimeType     | string | 是   | 是   | 媒体MIME(Multipurpose&nbsp;Internet&nbsp;Mail&nbsp;Extensions)类型。<br/>包括:'image/\*'、'video/\*'、'audio/\*'、 'file\*'。 |
| relativePath | string | 是   | 是   | 自定义媒体资源保存位置,例:Pictures/ 不填则保存到默认路径。 <br/> image类型默认路径Pictures/ <br/> video类型默认路径Videos/ <br/> audio类型默认路径Audios/ <br/> file类型默认路径Documents/ 。 |
P
panqiangbiao 已提交
2685

H
huweiqi 已提交
2686
## MediaSelectOption
P
panqiangbiao 已提交
2687 2688 2689 2690 2691

媒体资源类型选项。

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

H
huweiqi 已提交
2692 2693
| 名称    | 类型     | 可读 | 可写 | 说明                   |
| ----- | ------ | ---- | ---- | -------------------- |
H
huweiqi 已提交
2694
| type  | 'image' &#124; 'video' &#124; 'media' | 是    | 是  | 媒体类型,包括:image, video, media,当前仅支持media类型。 |
H
huweiqi 已提交
2695
| count | number | 是    | 是  | 可以选择媒体数量的最大值,count = 1表示单选,count大于1表示多选。            |