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