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