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