鸿蒙开发接口媒体:【@ohos.multimedia.medialibrary (媒体库管理)】

 媒体库管理

icon-note.gif

  说明:  该组件从API Version 6开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。 发前请熟悉鸿蒙开发指导文档: gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md点击或者复制转到。

导入模块

import mediaLibrary from '@ohos.multimedia.mediaLibrary';

mediaLibrary.getMediaLibrary8+

getMediaLibrary(context: Context): MediaLibrary

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

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

参数:

参数名类型必填说明
contextContext传入Ability实例的Context。

返回值:

类型说明
[MediaLibrary]媒体库实例

示例:(从API Version 9开始)

var media = mediaLibrary.getMediaLibrary(this.context);

示例:(API Version 8)

import featureAbility from '@ohos.ability.featureAbility';

var context = featureAbility.getContext()
var media = mediaLibrary.getMediaLibrary(context);

mediaLibrary.getMediaLibrary

getMediaLibrary(): MediaLibrary

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

说明: 从API Version 8开始,该接口不再维护,推荐使用新接口[mediaLibrary.getMediaLibrary8+]。

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

返回值:

类型说明
[MediaLibrary]媒体库实例

示例:

var media = mediaLibrary.getMediaLibrary();

MediaLibrary

getFileAssets7+

getFileAssets(options: MediaFetchOptions, callback: AsyncCallback<FetchFileResult>): void

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

需要权限:ohos.permission.READ_MEDIA

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

参数:

参数名类型必填说明
options[MediaFetchOptions]文件获取选项
callbackAsyncCallback<[FetchFileResult]>异步获取FetchFileResult之后的回调

示例:

let fileKeyObj = mediaLibrary.FileKey
let imageType = mediaLibrary.MediaType.IMAGE
let imagesfetchOp = {
    selections: fileKeyObj.MEDIA_TYPE + '= ?',
    selectionArgs: [imageType.toString()],
};
mediaLibrary.getFileAssets(imagesfetchOp, (error, fetchFileResult) => {
    if (fetchFileResult != undefined) {
        console.info('mediaLibraryTest : ASSET_CALLBACK fetchFileResult success');
        fetchFileResult.getAllObject((err, fileAssetList) => {
            if (fileAssetList != undefined) {
                fileAssetList.forEach(getAllObjectInfo);
            }
        });
    }
});

getFileAssets7+

getFileAssets(options: MediaFetchOptions): Promise<FetchFileResult>

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

需要权限:ohos.permission.READ_MEDIA

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

参数:

参数名类型必填说明
options[MediaFetchOptions]文件检索选项

返回值

类型说明
[FetchFileResult]文件数据结果集

示例:

let fileKeyObj = mediaLibrary.FileKey
let imageType = mediaLibrary.MediaType.IMAGE
let imagesfetchOp = {
    selections: fileKeyObj.MEDIA_TYPE + '= ?',
    selectionArgs: [imageType.toString()],
};
mediaLibrary.getFileAssets(imagesfetchOp).then(function(fetchFileResult){
    console.info("getFileAssets successfully:"+ JSON.stringify(dir));
}).catch(function(err){
    console.info("getFileAssets failed with error:"+ err);
});

on8+

on(type: 'deviceChange'|'albumChange'|'imageChange'|'audioChange'|'videoChange'|'fileChange'|'remoteFileChange', callback: Callback<void>): void

打开媒体媒体库变更通知,使用callback方式返回异步结果。

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

参数:

参数名类型必填说明
typestring媒体类型 'deviceChange': 注册设备变更 'albumChange': 相册变更 'imageChange': 图片文件变更 'audioChange':  音频文件变更 'videoChange':  视频文件变更 'fileChange':  文件变更 'remoteFileChange': 注册设备上文件变更
callbackcallback<void>回调返回空

示例:

mediaLibrary.on('imageChange', () => {
    // image file had changed, do something
})

off8+

off(type: 'deviceChange'|'albumChange'|'imageChange'|'audioChange'|'videoChange'|'fileChange'|'remoteFileChange', callback?: Callback<void>): void

关闭媒体媒体库变更通知,使用callback方式返回异步结果。

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

参数:

参数名类型必填说明
typestring媒体类型 'deviceChange': 注册设备变更 'albumChange': 相册变更 'imageChange': 图片文件变更 'audioChange':  音频文件变更 'videoChange':  视频文件变更 'fileChange':  文件变更 'remoteFileChange': 注册设备上文件变更
callbackcallback<void>回调返回空

示例:

mediaLibrary.off('imageChange', () => {
    // stop listening success
})

createAsset 8+

createAsset(mediaType: MediaType, displayName: string, relativePath: string, callback: AsyncCallback<FileAsset>): void

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

需要权限:ohos.permission.READ_MEDIA, ohos.permission.WRITE_MEDIA

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

参数:

参数名类型必填说明
mediaType[MediaType]媒体类型
displayNamestring展示文件名
relativePathstring文件保存路径,可以通过[getPublicDirectory]获取不同类型文件的保存路径
callbackAsyncCallback<[FileAsset]>异步获取媒体数据FileAsset之后的回调

示例:

async function example() {
    // 使用Callback方式创建Image类型文件
    let mediaType = mediaLibrary.MediaType.IMAGE;
    let DIR_IMAGE = mediaLibrary.DirectoryType.DIR_IMAGE;
    const path = await media.getPublicDirectory(DIR_IMAGE);
    media.createAsset(mediaType, 'imageCallBack.jpg', path + 'myPicture/', (err, fileAsset) => {
        if (fileAsset != undefined) {
            console.info('createAsset successfully, message = ' + err);
        } else {
            console.info('createAsset failed, message = ' + err);
        }
    });
}

createAsset8+

createAsset(mediaType: MediaType, displayName: string, relativePath: string): Promise<FileAsset>

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

需要权限:ohos.permission.READ_MEDIA, ohos.permission.WRITE_MEDIA

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

参数:

参数名类型必填说明
mediaType[MediaType]媒体类型
displayNamestring展示文件名
relativePathstring相对路径,可以通过getPublicDirectory获取不同类型媒体文件的一层目录的relative path

返回值

类型说明
[FileAsset]媒体数据FileAsset

示例:

async function example() {
    // 使用Promise方式创建Image类型文件
    let mediaType = mediaLibrary.MediaType.IMAGE;
    let DIR_IMAGE = mediaLibrary.DirectoryType.DIR_IMAGE;
    const path = await media.getPublicDirectory(DIR_IMAGE);
    media.createAsset(mediaType, "image01.jpg", path + 'myPicture/').then (function (asset) {
        console.info("createAsset successfully:"+ JSON.stringify(asset));
    }).catch(function(err){
        console.info("createAsset failed with error:"+ err);
    });
}

getPublicDirectory8+

getPublicDirectory(type: DirectoryType, callback: AsyncCallback<string>): void

获取公共目录路径,使用callback方式返回结果。

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

参数:

参数名类型必填说明
type[DirectoryType]公共目录类型
callbackAsyncCallback<string>callback 返回公共目录路径

示例:

let DIR_CAMERA = mediaLibrary.DirectoryType.DIR_CAMERA;
media.getPublicDirectory(DIR_CAMERA, (err, dicResult) => {
    if (dicResult == 'Camera/') {
        console.info('mediaLibraryTest : getPublicDirectory passed');
    } else {
        console.info('mediaLibraryTest : getPublicDirectory failed');
    }
});

getPublicDirectory8+

getPublicDirectory(type: DirectoryType): Promise<string>

获取公共目录路径,使用Promise方式返回结果。

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

参数:

参数名类型必填说明
type[DirectoryType]公共目录类型

返回值:

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

示例:

async function example() {
    let DIR_CAMERA = mediaLibrary.DirectoryType.DIR_CAMERA;
    const dicResult = await media.getPublicDirectory(DIR_CAMERA);
    if (dicResult == 'Camera/') {
        console.info('MediaLibraryTest : getPublicDirectory');
    } else {
        console.info('MediaLibraryTest : getPublicDirectory failed');
    }
}

getAlbums7+

getAlbums(options: MediaFetchOptions, callback: AsyncCallback<Array<Album>>): void

获取相册列表,使用callback 方式返回结果。

需要权限:ohos.permission.READ_MEDIA

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

参数

参数名类型必填说明
options[MediaFetchOptions]相册获取条件
callbackAsyncCallback<Array<[Album]>>异步获取Album列表之后的回调

示例:

let AlbumNoArgsfetchOp = {
    selections: '',
    selectionArgs: [],
};
mediaLibrary.getAlbums(AlbumNoArgsfetchOp, (err, albumList) => {
    if (albumList != undefined) {
        const album = albumList[0];
        console.info('album.albumName = ' + album.albumName);
        console.info('album.count = ' + album.count);
     } else {
        console.info('getAlbum fail, message = ' + err);
     }
})

getAlbums7+

getAlbums(options: MediaFetchOptions): Promise<Array<Album>>

获取相册列表,使用 promise 方式返回结果。

需要权限:ohos.permission.READ_MEDIA

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

参数:

参数名类型必填说明
options[MediaFetchOptions]相册获取条件

返回值:

类型说明
Promise<Array<[Album]>>返回Album列表

示例:

let AlbumNoArgsfetchOp = {
    selections: '',
    selectionArgs: [],
};
mediaLibrary.getAlbums(AlbumNoArgsfetchOp).then(function(albumList){
    console.info("getAlbums successfully:"+ JSON.stringify(albumList));
}).catch(function(err){
    console.info("getAlbums failed with error:"+ err);
});

release8+

release(callback: AsyncCallback<void>): void

释放MediaLibrary实例。 当后续不需要使用MediaLibrary实例中的方法时调用。

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

参数:

参数名类型必填说明
callbackAsyncCallback<void>回调表示成功还是失败

示例:

var media = mediaLibrary.getMediaLibrary(context);
media.release((err) => {
    // do something
});

release8+

release(): Promise<void>

释放MediaLibrary实例。 当后续不需要使用MediaLibrary实例中的方法时调用。

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

返回值:

类型说明
Promise<void>Promise实例,用于获取异步返回结果

示例:

var media = mediaLibrary.getMediaLibrary(context);
media.release()

storeMediaAsset(deprecated)

storeMediaAsset(option: MediaAssetOption, callback: AsyncCallback<string>): void

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

说明: 从API Version 9开始废弃。

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

参数:

参数名类型必填说明
option[MediaAssetOption]媒体资源选项。
callbackAsyncCallback<string>媒体资源保存回调,返回保存成功后得到的URI。

示例:

let option = {
  src : "/data/storage/el2/base/haps/entry/image.png",
  mimeType : "image/*",
  relativePath : "Pictures/"
};
mediaLibrary.getMediaLibrary().storeMediaAsset(option, (err, value) => {
  if (err) {
      console.log("An error occurred when storing media resources.");
      return;
  }
  console.log("Media resources stored. ");
  // Obtain the URI that stores media resources.
});

storeMediaAsset(deprecated)

storeMediaAsset(option: MediaAssetOption): Promise<string>

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

说明: 从API Version 9开始废弃。

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

参数:

参数名类型必填说明
option[MediaAssetOption]媒体资源选项。

返回值:

类型说明
Promise<string>Promise实例,用于异步获取保存成功后得到的URI。

示例:

let option = {
  src : "/data/storage/el2/base/haps/entry/image.png",
  mimeType : "image/*",
  relativePath : "Pictures/"
};
mediaLibrary.getMediaLibrary().storeMediaAsset(option).then((value) => {
  console.log("Media resources stored.");
  // Obtain the URI that stores media resources.
}).catch((err) => {
  console.log("An error occurred when storing media resources.");
});

startImagePreview(deprecated)

startImagePreview(images: Array<string>, index: number, callback: AsyncCallback<void>): void

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

说明: 从API Version 9开始废弃。

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

参数:

参数名类型必填说明
imagesArray<string>预览的图片URI("https://","dataability://")列表。
indexnumber开始显示的图片序号。
callbackAsyncCallback<void>图片预览回调,失败时返回错误信息。

示例:

let images = [
  "dataability:///media/xxxx/2",
  "dataability:///media/xxxx/3"
];
/* 网络图片使用方式
let images = [
  "https://media.xxxx.com/image1.jpg",
  "https://media.xxxx.com/image2.jpg"
];
*/
let index = 1;
mediaLibrary.getMediaLibrary().startImagePreview(images, index, (err) => {
  if (err) {
      console.log("An error occurred when previewing the images.");
      return;
  }
  console.log("Succeeded in previewing the images.");
});

startImagePreview(deprecated)

startImagePreview(images: Array<string>, callback: AsyncCallback<void>): void

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

说明: 从API Version 9开始废弃。

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

参数:

参数名类型必填说明
imagesArray<string>预览的图片URI("https://","dataability://")列表。
callbackAsyncCallback<void>图片预览回调,失败时返回错误信息。

示例:

let images = [
  "dataability:///media/xxxx/2",
  "dataability:///media/xxxx/3"
];
/* 网络图片使用方式
let images = [
  "https://media.xxxx.com/image1.jpg",
  "https://media.xxxx.com/image2.jpg"
];
*/
mediaLibrary.getMediaLibrary().startImagePreview(images, (err) => {
  if (err) {
      console.log("An error occurred when previewing the images.");
      return;
  }
  console.log("Succeeded in previewing the images.");
});

startImagePreview(deprecated)

startImagePreview(images: Array<string>, index?: number): Promise<void>

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

说明: 从API Version 9开始废弃。

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

参数:

参数名类型必填说明
imagesArray<string>预览的图片URI("https://","dataability://")列表。
indexnumber开始显示的图片序号,不选择时默认为0。

返回值:

类型说明
Promise<void>Promise实例,用于异步获取预览结果,失败时返回错误信息。

示例:

let images = [
  "dataability:///media/xxxx/2",
  "dataability:///media/xxxx/3"
];
/* 网络图片使用方式
let images = [
  "https://media.xxxx.com/image1.jpg",
  "https://media.xxxx.com/image2.jpg"
];
*/
let index = 1;
mediaLibrary.getMediaLibrary().startImagePreview(images, index).then(() => {
  console.log("Succeeded in previewing the images.");
}).catch((err) => {
  console.log("An error occurred when previewing the images.");
});

startMediaSelect(deprecated)

startMediaSelect(option: MediaSelectOption, callback: AsyncCallback<Array<string>>): void

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

说明: 从API Version 9开始废弃。

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

参数:

参数名类型必填说明
option[MediaSelectOption]媒体选择选项。
callbackAsyncCallback<Array<string>>媒体选择回调,返回选择的媒体URI(dataability://)列表。

示例:

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

startMediaSelect(deprecated)

startMediaSelect(option: MediaSelectOption): Promise<Array<string>>

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

说明: 从API Version 9开始废弃。

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

参数:

参数名类型必填说明
option[MediaSelectOption]媒体选择选项。

返回值:

类型说明
Promise<Array<string>>Promise实例,用于异步获取选择的媒体URI(dataability://)列表。

示例:

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

FileAsset7+

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

属性

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

名称类型可读可写说明
idnumber文件资源编号
uristring文件资源uri(如:dataability:///media/image/2)
mimeTypestring文件扩展属性
mediaType8+[MediaType]媒体类型
displayNamestring显示文件名,包含后缀名
titlestring文件标题
relativePath8+string相对公共目录路径
parent8+number父目录id
sizenumber文件大小(单位:字节)
dateAddednumber添加日期(添加文件时间到1970年1月1日的秒数值)
dateModifiednumber修改日期(修改文件时间到1970年1月1日的秒数值)
dateTakennumber拍摄日期(文件拍照时间到1970年1月1日的秒数值)
artist8+string作者
audioAlbum8+string专辑
widthnumber图片宽度(单位:像素)
heightnumber图片高度(单位:像素)
orientationnumber图片显示方向(顺时针旋转角度,如0,90,180 单位:度)
duration8+number持续时间(单位:毫秒)
albumIdnumber文件所归属的相册编号
albumUri8+string文件所归属相册uri
albumNamestring文件所归属相册名称

isDirectory8+

isDirectory(callback: AsyncCallback<boolean>): void

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

需要权限:ohos.permission.READ_MEDIA

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

参数:

参数名类型必填说明
callbackAsyncCallback<boolean>当前FileAsset是否是目录的回调

示例:

async function example() {
    let imageType = mediaLibrary.MediaType.IMAGE;
    let getImageOp = {
      selections: fileKeyObj.MEDIA_TYPE + '= ?',
      selectionArgs: [imageType.toString()],
      order: fileKeyObj.DATE_ADDED + " DESC",
      extendArgs: "",
    };
    const fetchFileResult = await media.getFileAssets(getImageOp);
    const asset = await fetchFileResult.getFirstObject();
    asset.isDirectory((err, isDirectory) => {
        // do something
    });
}

isDirectory8+

isDirectory():Promise<boolean>

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

需要权限:ohos.permission.READ_MEDIA

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

返回值:

类型说明
Promise<boolean>Promise实例,返回当前FileAsset是否是目录

示例:

async function example() {
    let imageType = mediaLibrary.MediaType.IMAGE;
    let getImageOp = {
      selections: fileKeyObj.MEDIA_TYPE + '= ?',
      selectionArgs: [imageType.toString()],
      order: fileKeyObj.DATE_ADDED + " DESC",
      extendArgs: "",
    };
    const fetchFileResult = await media.getFileAssets(getImageOp);
    const asset = await fetchFileResult.getFirstObject();
    asset.isDirectory().then(function(isDirectory){
        console.info("isDirectory result:"+ isDirectory);
    }).catch(function(err){
        console.info("isDirectory failed with error:"+ err);
    });
}

commitModify8+

commitModify(callback: AsyncCallback<void>): void

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

需要权限:ohos.permission.READ_MEDIA, ohos.permission.WRITE_MEDIA

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

参数:

参数名类型必填说明
callbackAsyncCallback<void>回调返回空

示例:

async function example() {
    let imageType = mediaLibrary.MediaType.IMAGE;
    let getImageOp = {
      selections: fileKeyObj.MEDIA_TYPE + '= ?',
      selectionArgs: [imageType.toString()],
      order: fileKeyObj.DATE_ADDED + " DESC",
      extendArgs: "",
    };
    const fetchFileResult = await media.getFileAssets(getImageOp);
    const asset = await fetchFileResult.getFirstObject();
    asset.title = 'newtitle';
    asset.commitModify(() => {
        console.info('commitModify success');   
    });
}

commitModify8+

commitModify(): Promise<void>

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

需要权限:ohos.permission.READ_MEDIA, ohos.permission.WRITE_MEDIA

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

返回值:

类型说明
Promise<void>Promise返回空

示例:

async function example() {
    let imageType = mediaLibrary.MediaType.IMAGE;
    let getImageOp = {
      selections: fileKeyObj.MEDIA_TYPE + '= ?',
      selectionArgs: [imageType.toString()],
      order: fileKeyObj.DATE_ADDED + " DESC",
      extendArgs: "",
    };
    const fetchFileResult = await media.getFileAssets(getImageOp);
    const asset = await fetchFileResult.getFirstObject();
    asset.title = 'newtitle';
    asset.commitModify();
}

open8+

open(mode: string, callback: AsyncCallback<number>): void

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

注意:当前写操作是互斥的操作,写操作完成后需要调用close进行释放

需要权限:ohos.permission.READ_MEDIA('r'模式打开),ohos.permission.WRITE_MEDIA('w'模式打开)

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

参数

参数名类型必填说明
modestring打开文件方式,如:'r'(只读), 'w'(只写), 'rw'(读写)
callbackAsyncCallback<number>回调返回文件句柄

示例:

async function example() {
    let mediaType = mediaLibrary.MediaType.IMAGE;
    let DIR_IMAGE = mediaLibrary.DirectoryType.DIR_IMAGE;
    const path = await media.getPublicDirectory(DIR_IMAGE);
    asset = await media.createAsset(mediaType, "image00003.jpg", path);
    asset.open('rw', (openError, fd) => {
            if(fd > 0){
                asset.close(fd);
            }else{
                console.info('File Open Failed!' + openError);
            }
    });
}

open8+

open(mode: string): Promise<number>

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

注意:当前写操作是互斥的操作,写操作完成后需要调用close进行释放

需要权限:ohos.permission.READ_MEDIA('r'模式打开),ohos.permission.WRITE_MEDIA('w'模式打开)

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

参数:

参数名类型必填说明
modestring打开文件方式,如:'r'(只读), 'w'(只写), 'rw'(读写)

返回值:

类型说明
Promise<number>Promise返回文件句柄

示例:

async function example() {
    let mediaType = mediaLibrary.MediaType.IMAGE;
    let DIR_IMAGE = mediaLibrary.DirectoryType.DIR_IMAGE;
    const path = await media.getPublicDirectory(DIR_IMAGE);
    asset = await media.createAsset(mediaType, "image00003.jpg", path);
    asset.open('rw')
        .then((fd) => {
            console.info('File fd!' + fd);
        })
        .catch((err) => {
            console.info('File err!' + err);
        });
}

close8+

close(fd: number, callback: AsyncCallback<void>): void

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

需要权限:ohos.permission.READ_MEDIA('r'模式打开),ohos.permission.WRITE_MEDIA('w'模式打开)

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

参数:

参数名类型必填说明
fdnumber文件描述符
callbackAsyncCallback<void>回调返回空

示例:

async function example() {
    let imageType = mediaLibrary.MediaType.IMAGE;
    let getImageOp = {
      selections: fileKeyObj.MEDIA_TYPE + '= ?',
      selectionArgs: [imageType.toString()],
      order: fileKeyObj.DATE_ADDED + " DESC",
      extendArgs: "",
    };
    const fetchFileResult = await media.getFileAssets(getImageOp);
    const asset = await fetchFileResult.getFirstObject();
    asset.close(fd, (closeErr) => {
        if (closeErr != undefined) {
            console.info('mediaLibraryTest : close : FAIL ' + closeErr.message);
            console.info('mediaLibraryTest : ASSET_CALLBACK : FAIL');
        } else {
            console.info("=======asset.close success====>");
        }
    });
}

close8+

close(fd: number): Promise<void>

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

需要权限:ohos.permission.READ_MEDIA('r'模式打开),ohos.permission.WRITE_MEDIA('w'模式打开)

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

参数:

参数名类型必填说明
fdnumber文件描述符

返回值:

类型说明
Promise<void>Promise返回空

示例:

async function example() {
    let imageType = mediaLibrary.MediaType.IMAGE;
    let getImageOp = {
      selections: fileKeyObj.MEDIA_TYPE + '= ?',
      selectionArgs: [imageType.toString()],
      order: fileKeyObj.DATE_ADDED + " DESC",
      extendArgs: "",
    };
    const fetchFileResult = await media.getFileAssets(getImageOp);
    const asset = await fetchFileResult.getFirstObject();
    asset.close(fd).then((closeErr) => {
        if (closeErr != undefined) {
            console.info('mediaLibraryTest : close : FAIL ' + closeErr.message);
            console.info('mediaLibraryTest : ASSET_CALLBACK : FAIL');

        } else {
            console.info("=======asset.close success====>");
        }
    });
}

getThumbnail8+

getThumbnail(callback: AsyncCallback<image.PixelMap>): void

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

需要权限:ohos.permission.READ_MEDIA

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

参数:

参数名类型必填说明
callbackAsyncCallback<image.PixelMap>回调返回缩略图的PixelMap

示例:

async function example() {
    let imageType = mediaLibrary.MediaType.IMAGE;
    let getImageOp = {
      selections: fileKeyObj.MEDIA_TYPE + '= ?',
      selectionArgs: [imageType.toString()],
      order: fileKeyObj.DATE_ADDED + " DESC",
      extendArgs: "",
    };
    const fetchFileResult = await media.getFileAssets(getImageOp);
    const asset = await fetchFileResult.getFirstObject();
    asset.getThumbnail((err, pixelmap) => {
        console.info('mediaLibraryTest : getThumbnail Successfull '+ pixelmap);
    });
}

getThumbnail8+

getThumbnail(size: Size, callback: AsyncCallback<image.PixelMap>): void

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

需要权限:ohos.permission.READ_MEDIA

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

参数:

参数名类型必填说明
size[Size]缩略图尺寸
callbackAsyncCallback<image.PixelMap>回调返回缩略图的PixelMap

示例:

async function example() {
    let imageType = mediaLibrary.MediaType.IMAGE;
    let getImageOp = {
      selections: fileKeyObj.MEDIA_TYPE + '= ?',
      selectionArgs: [imageType.toString()],
      order: fileKeyObj.DATE_ADDED + " DESC",
      extendArgs: "",
    };
    const fetchFileResult = await media.getFileAssets(getImageOp);
    const asset = await fetchFileResult.getFirstObject();
    asset.getThumbnail(size, (err, pixelmap) => {
        console.info('mediaLibraryTest : getThumbnail Successfull '+ pixelmap);
    });
}

getThumbnail8+

getThumbnail(size?: Size): Promise<image.PixelMap>

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

需要权限:ohos.permission.READ_MEDIA

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

参数:

参数名类型必填说明
size[Size]缩略图尺寸

返回值:

类型说明
Promise<image.PixelMap>Promise返回缩略图的PixelMap

示例:

async function example() {
    let imageType = mediaLibrary.MediaType.IMAGE;
    let getImageOp = {
        selections: fileKeyObj.MEDIA_TYPE + '= ?',
        selectionArgs: [imageType.toString()],
        order: fileKeyObj.DATE_ADDED + " DESC",
        extendArgs: "",
    };
    const fetchFileResult = await media.getFileAssets(getImageOp);
    const asset = await fetchFileResult.getFirstObject();
    asset.getThumbnail(size)
    .then((pixelmap) => {
        console.info('mediaLibraryTest : getThumbnail Successfull '+ pixelmap);
    })
    .catch((err) => {
        console.info('mediaLibraryTest : getThumbnail fail'+ err);
    });
}

favorite8+

favorite(isFavorite: boolean, callback: AsyncCallback<void>): void

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

需要权限:ohos.permission.READ_MEDIA, ohos.permission.WRITE_MEDIA

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

参数:

参数名类型必填说明
isFavoriteboolean是否设置为收藏文件, true:设置为收藏文件,false:取消收藏
callbackAsyncCallback<void>回调返回空

示例:

async function example() {
    let imageType = mediaLibrary.MediaType.IMAGE;
    let getImageOp = {
      selections: fileKeyObj.MEDIA_TYPE + '= ?',
      selectionArgs: [imageType.toString()],
      order: fileKeyObj.DATE_ADDED + " DESC",
      extendArgs: "",
    };
    const fetchFileResult = await media.getFileAssets(getImageOp);
    const asset = await fetchFileResult.getFirstObject();
    asset.favorite(true,function(err){
        // do something
    });
}

favorite8+

favorite(isFavorite: boolean): Promise<void>

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

需要权限:ohos.permission.READ_MEDIA, ohos.permission.WRITE_MEDIA

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

参数:

参数名类型必填说明
isFavoriteboolean是否设置为收藏文件, true:设置为收藏文件,false:取消收藏

返回值:

类型说明
Promise<void>Promise返回空

示例:

async function example() {
    let imageType = mediaLibrary.MediaType.IMAGE;
    let getImageOp = {
      selections: fileKeyObj.MEDIA_TYPE + '= ?',
      selectionArgs: [imageType.toString()],
      order: fileKeyObj.DATE_ADDED + " DESC",
      extendArgs: "",
    };
    const fetchFileResult = await media.getFileAssets(getImageOp);
    const asset = await fetchFileResult.getFirstObject();
    asset.favorite(true).then(function() {
        console.info("favorite successfully");
    }).catch(function(err){
        console.info("favorite failed with error:"+ err);
    });
}

isFavorite8+

isFavorite(callback: AsyncCallback<boolean>): void

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

需要权限:ohos.permission.READ_MEDIA

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

参数:

参数名类型必填说明
callbackAsyncCallback<boolean>回调表示是否为收藏文件

示例:

async function example() {
    let imageType = mediaLibrary.MediaType.IMAGE;
    let getImageOp = {
      selections: fileKeyObj.MEDIA_TYPE + '= ?',
      selectionArgs: [imageType.toString()],
      order: fileKeyObj.DATE_ADDED + " DESC",
      extendArgs: "",
    };
    const fetchFileResult = await media.getFileAssets(getImageOp);
    const asset = await fetchFileResult.getFirstObject();
    asset.isFavorite((err, isFavorite) => {
        if (isFavorite) {
            console.info('FileAsset is favorite');
        }else{
            console.info('FileAsset is not favorite');
        }
    });
}

isFavorite8+

isFavorite():Promise<boolean>

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

需要权限:ohos.permission.READ_MEDIA

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

返回值:

类型说明
Promise<boolean>Promise回调表示是否是收藏文件

示例:

async function example() {
    let imageType = mediaLibrary.MediaType.IMAGE;
    let getImageOp = {
      selections: fileKeyObj.MEDIA_TYPE + '= ?',
      selectionArgs: [imageType.toString()],
      order: fileKeyObj.DATE_ADDED + " DESC",
      extendArgs: "",
    };
    const fetchFileResult = await media.getFileAssets(getImageOp);
    const asset = await fetchFileResult.getFirstObject();
    asset.isFavorite().then(function(isFavorite){
        console.info("isFavorite result:"+ isFavorite);
    }).catch(function(err){
        console.info("isFavorite failed with error:"+ err);
    });
}

trash8+

trash(isTrash: boolean, callback: AsyncCallback<void>): void

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

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

需要权限:ohos.permission.READ_MEDIA, ohos.permission.WRITE_MEDIA

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

参数:

参数名类型必填说明
isTrashboolean是否设置为垃圾文件
callbackAsyncCallback<void>回调返回空

示例:

async function example() {
    let imageType = mediaLibrary.MediaType.IMAGE;
    let getImageOp = {
      selections: fileKeyObj.MEDIA_TYPE + '= ?',
      selectionArgs: [imageType.toString()],
      order: fileKeyObj.DATE_ADDED + " DESC",
      extendArgs: "",
    };
    const fetchFileResult = await media.getFileAssets(getImageOp);
    const asset = await fetchFileResult.getFirstObject();
    asset.trash(true, trashCallBack);
    function trashCallBack(err, trash) {
        console.info('mediaLibraryTest : ASSET_CALLBACK ASSET_CALLBACK trash');
    }
}

trash8+

trash(isTrash: boolean): Promise<void>

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

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

需要权限:ohos.permission.READ_MEDIA, ohos.permission.WRITE_MEDIA

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

参数:

参数名类型必填说明
isTrashboolean是否设置为垃圾文件

返回值:

类型说明
Promise<void>Promise返回空

示例:

async function example() {
    let imageType = mediaLibrary.MediaType.IMAGE;
    let getImageOp = {
      selections: fileKeyObj.MEDIA_TYPE + '= ?',
      selectionArgs: [imageType.toString()],
      order: fileKeyObj.DATE_ADDED + " DESC",
      extendArgs: "",
    };
    const fetchFileResult = await media.getFileAssets(getImageOp);
    const asset = await fetchFileResult.getFirstObject();
    asset.trash(true).then(function() {
        console.info("trash successfully");
    }).catch(function(err){
        console.info("trash failed with error:"+ err);
    });
}

isTrash8+

isTrash(callback: AsyncCallback<boolean>): void

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

需要权限:ohos.permission.READ_MEDIA

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

参数:

参数名类型必填说明
callbackAsyncCallback<boolean>回调返回表示文件是否为垃圾文件

示例:

async function example() {
    let imageType = mediaLibrary.MediaType.IMAGE;
    let getImageOp = {
      selections: fileKeyObj.MEDIA_TYPE + '= ?',
      selectionArgs: [imageType.toString()],
      order: fileKeyObj.DATE_ADDED + " DESC",
      extendArgs: "",
    };
    const fetchFileResult = await media.getFileAssets(getImageOp);
    const asset = await fetchFileResult.getFirstObject();
    asset.isTrash(isTrashCallBack);
    function isTrashCallBack(err, isTrash) {
            if (isTrash == true) {
                console.info('mediaLibraryTest : ASSET_CALLBACK ASSET_CALLBACK isTrash = ' + isTrash);
                asset.trash(true, trashCallBack);

            } else {
                console.info('mediaLibraryTest : ASSET_CALLBACK isTrash Unsuccessfull = ' + err);
                console.info('mediaLibraryTest : ASSET_CALLBACK isTrash : FAIL');

            }
    }
}

isTrash8+

isTrash():Promise<boolean>

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

需要权限:ohos.permission.READ_MEDIA

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

返回值:

类型说明
Promise<void>Promise回调表示文件是否为垃圾文件

示例:

async function example() {
    let imageType = mediaLibrary.MediaType.IMAGE;
    let getImageOp = {
      selections: fileKeyObj.MEDIA_TYPE + '= ?',
      selectionArgs: [imageType.toString()],
      order: fileKeyObj.DATE_ADDED + " DESC",
      extendArgs: "",
    };
    const fetchFileResult = await media.getFileAssets(getImageOp);
    const asset = await fetchFileResult.getFirstObject();
    asset.isTrash().then(function(isTrash){
        console.info("isTrash result:"+ isTrash);
    }).catch(function(err){
        console.info("isTrash failed with error:"+ err);
    });
}

FetchFileResult7+

文件检索结果集。

getCount7+

getCount(): number

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

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

返回值

类型说明
number检索到的文件总数

示例

async function example() {
    let getFileCountOneOp = {
        selections: fileKeyObj.MEDIA_TYPE + '= ?',
        selectionArgs: [fileType.toString()],
        order: fileKeyObj.DATE_ADDED + " DESC",
        extendArgs: "",
    };
    let fetchFileResult = await media.getFileAssets(getFileCountOneOp);
    const fetchCount = fetchFileResult.getCount();
}

isAfterLast7+

isAfterLast(): boolean

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

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

返回值

类型说明
boolean当读到最后一条记录后,后续没有记录返回true,否则返回false。

示例

async function example() {
    let imageType = mediaLibrary.MediaType.IMAGE;
    let getImageOp = {
      selections: fileKeyObj.MEDIA_TYPE + '= ?',
      selectionArgs: [imageType.toString()],
      order: fileKeyObj.DATE_ADDED + " DESC",
      extendArgs: "",
    };
    let fetchFileResult = await media.getFileAssets(getImageOp);
    const fetchCount = fetchFileResult.getCount();
    console.info('mediaLibraryTest : count:' + fetchCount);
    let fileAsset = await fetchFileResult.getFirstObject();
    for (var i = 1; i < fetchCount; i++) {
            fileAsset = await fetchFileResult.getNextObject();
            if(i == fetchCount - 1) {
              console.info('mediaLibraryTest : isLast');
              var result = fetchFileResult.isAfterLast();
              console.info('mediaLibraryTest : isAfterLast:' + result);
              console.info('mediaLibraryTest : isAfterLast end');
              fetchFileResult.close();

            }
    }
}

close7+

close(): void

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

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

示例

async function example() {
    let imageType = mediaLibrary.MediaType.IMAGE;
    let getImageOp = {
      selections: fileKeyObj.MEDIA_TYPE + '= ?',
      selectionArgs: [imageType.toString()],
      order: fileKeyObj.DATE_ADDED + " DESC",
      extendArgs: "",
    };
    let fetchFileResult = await media.getFileAssets(getImageOp);
    fetchFileResult.close();
}

getFirstObject7+

getFirstObject(callback: AsyncCallback<FileAsset>): void

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

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

参数

参数名类型必填说明
callbackAsyncCallback<[FileAsset]>异步获取结果集中第一个FileAsset完成后的回调

示例

async function example() {
    let imageType = mediaLibrary.MediaType.IMAGE;
    let getImageOp = {
      selections: fileKeyObj.MEDIA_TYPE + '= ?',
      selectionArgs: [imageType.toString()],
      order: fileKeyObj.DATE_ADDED + " DESC",
      extendArgs: "",
    };
    let fetchFileResult = await media.getFileAssets(getImageOp);
    fetchFileResult.getFirstObject((err, value) => {
       if (err) {
           console.error('Failed ');
           return;
       }
       console.log(value);
    })
}

getFirstObject7+

getFirstObject(): Promise<FileAsset>

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

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

返回值

类型说明
Promise<[FileAsset]>Promise方式返回FileAsset。

示例

async function example() {
    let imageType = mediaLibrary.MediaType.IMAGE;
    let getImageOp = {
      selections: fileKeyObj.MEDIA_TYPE + '= ?',
      selectionArgs: [imageType.toString()],
      order: fileKeyObj.DATE_ADDED + " DESC",
      extendArgs: "",
    };
    let fetchFileResult = await media.getFileAssets(getImageOp);
    fetchFileResult.getFirstObject().then(function(fileAsset){
        console.info("getFirstObject successfully:"+ JSON.stringify(fileAsset));
    }).catch(function(err){
        console.info("getFirstObject failed with error:"+ err);
    });
}

getNextObject7+

getNextObject(callback: AsyncCallback<FileAsset>): void

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

需要权限:ohos.permission.READ_MEDIA

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

参数

参数名类型必填说明
callbackeAsyncCallback<[FileAsset]>异步返回结果集中下一个FileAsset之后的回调

示例

async function example() {
    let imageType = mediaLibrary.MediaType.IMAGE;
    let getImageOp = {
      selections: fileKeyObj.MEDIA_TYPE + '= ?',
      selectionArgs: [imageType.toString()],
      order: fileKeyObj.DATE_ADDED + " DESC",
      extendArgs: "",
    };
    let fetchFileResult = await media.getFileAssets(getImageOp);
    fetchFileResult.getNextObject((err, value) => {
       if (err) {
           console.error('Failed ');
           return;
       }
       console.log(value);
    })
}

getNextObject7+

getNextObject(): Promise<FileAsset>

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

需要权限:ohos.permission.READ_MEDIA

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

返回值

类型说明
Promise<[FileAsset]>返回FileAsset对象

示例

async function example() {
    let imageType = mediaLibrary.MediaType.IMAGE;
    let getImageOp = {
      selections: fileKeyObj.MEDIA_TYPE + '= ?',
      selectionArgs: [imageType.toString()],
      order: fileKeyObj.DATE_ADDED + " DESC",
      extendArgs: "",
    };
    let fetchFileResult = await media.getFileAssets(getImageOp);
    const fetchCount = fetchFileResult.getCount();
    console.info('mediaLibraryTest : count:' + fetchCount);
    fileAsset = await fetchFileResult.getNextObject();
}

getLastObject7+

getLastObject(callback: AsyncCallback<FileAsset>): void

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

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

参数

参数名类型必填说明
callbackAsyncCallback<[FileAsset]>异步返回FileAsset之后的回调

示例

async function example() {
    let imageType = mediaLibrary.MediaType.IMAGE;
    let getImageOp = {
      selections: fileKeyObj.MEDIA_TYPE + '= ?',
      selectionArgs: [imageType.toString()],
      order: fileKeyObj.DATE_ADDED + " DESC",
      extendArgs: "",
    };
    let fetchFileResult = await media.getFileAssets(getImageOp);
    fetchFileResult.getLastObject((err, value) => {
       if (err) {
           console.error('Failed ');
           return;
       }
       console.log(value);
    })
}

getLastObject7+

getLastObject(): Promise<FileAsset>

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

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

返回值

类型说明
Promise<[FileAsset]>返回FileAsset对象

示例

async function example() {
    let imageType = mediaLibrary.MediaType.IMAGE;
    let getImageOp = {
      selections: fileKeyObj.MEDIA_TYPE + '= ?',
      selectionArgs: [imageType.toString()],
      order: fileKeyObj.DATE_ADDED + " DESC",
      extendArgs: "",
    };
    let fetchFileResult = await media.getFileAssets(getImageOp);
    let lastObject = await fetchFileResult.getLastObject();
}

getPositionObject7+

getPositionObject(index: number, callback: AsyncCallback<FileAsset>): void

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

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

参数

参数名类型必填说明
indexnumber要获取的文件的索引,从0开始
callbackAsyncCallback<[FileAsset]>异步返回FileAsset之后的回调

示例

async function example() {
    let imageType = mediaLibrary.MediaType.IMAGE;
    let getImageOp = {
      selections: fileKeyObj.MEDIA_TYPE + '= ?',
      selectionArgs: [imageType.toString()],
      order: fileKeyObj.DATE_ADDED + " DESC",
      extendArgs: "",
    };
    let fetchFileResult = await media.getFileAssets(getImageOp);
    fetchFileResult.getPositionObject(0, (err, value) => {
       if (err) {
           console.error('Failed ');
           return;
       }
       console.log(value);
    })
}

getPositionObject7+

getPositionObject(index: number): Promise<FileAsset>

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

需要权限:ohos.permission.READ_MEDIA

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

参数

参数名类型必填说明
indexnumber要获取的文件的索引,从0开始

返回值

类型说明
Promise<[FileAsset]>返回FileAsset对象

示例

async function example() {
    let imageType = mediaLibrary.MediaType.IMAGE;
    let getImageOp = {
      selections: fileKeyObj.MEDIA_TYPE + '= ?',
      selectionArgs: [imageType.toString()],
      order: fileKeyObj.DATE_ADDED + " DESC",
      extendArgs: "",
    };
    let fetchFileResult = await media.getFileAssets(getImageOp);
    fetchFileResult.getPositionObject(1, (err, value) => {
       if (err) {
           console.error('Failed ');
           return;
       }
       console.log(value);
    })
}

getAllObject7+

getAllObject(callback: AsyncCallback<Array<FileAsset>>): void

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

需要权限:ohos.permission.READ_MEDIA

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

参数

参数名类型必填说明
callbackAsyncCallback<Array<[FileAsset]>>异步返回FileAsset列表之后的回调

示例

async function example() {
    let imageType = mediaLibrary.MediaType.IMAGE;
    let getImageOp = {
      selections: fileKeyObj.MEDIA_TYPE + '= ?',
      selectionArgs: [imageType.toString()],
      order: fileKeyObj.DATE_ADDED + " DESC",
      extendArgs: "",
    };
    let fetchFileResult = await media.getFileAssets(getImageOp);
    fetchFileResult.getAllObject((err, value) => {
       if (err) {
           console.error('Failed ');
           return;
       }
       console.log(value);
    })
}

getAllObject7+

getAllObject(): Promise<Array<FileAsset>>

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

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

返回值

类型说明
Promise<Array<[FileAsset]>>返回FileAsset对象列表

示例

async function example() {
    let imageType = mediaLibrary.MediaType.IMAGE;
    let getImageOp = {
      selections: fileKeyObj.MEDIA_TYPE + '= ?',
      selectionArgs: [imageType.toString()],
      order: fileKeyObj.DATE_ADDED + " DESC",
      extendArgs: "",
    };
    let fetchFileResult = await media.getFileAssets(getImageOp);
    var data = fetchFileResult.getAllObject();
}

Album7+

实体相册

属性

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

名称类型可读可写说明
albumIdnumber相册编号
albumNamestring相册名称
albumUri8+string相册Uri
dateModifiednumber修改日期
count8+number相册中文件数量
relativePath8+string相对路径
coverUri8+string封面文件Uri

commitModify8+

commitModify(callback: AsyncCallback<void>): void

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

需要权限:ohos.permission.READ_MEDIA, ohos.permission.WRITE_MEDIA

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

参数

参数名类型必填说明
callbackAsyncCallback<void>回调返回空

示例

async function example() {
    let AlbumNoArgsfetchOp = {
        selections: '',
        selectionArgs: [],
    };
    const albumList = await media.getAlbums(AlbumNoArgsfetchOp);
    const album = albumList[0];
    album.albumName = 'hello';
    album.commitModify((err) => {
       if (err) {
           console.error('Failed ');
           return;
       }
       console.log('Modify successful.');
    })
}

commitModify8+

commitModify(): Promise<void>

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

需要权限:ohos.permission.READ_MEDIA, ohos.permission.WRITE_MEDIA

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

返回值

类型说明
Promise<void>Promise调用返回空

示例

async function example() {
    let AlbumNoArgsfetchOp = {
        selections: '',
        selectionArgs: [],
    };
    const albumList = await media.getAlbums(AlbumNoArgsfetchOp);
    const album = albumList[0];
    album.albumName = 'hello';
    album.commitModify().then(function() {
        console.info("commitModify successfully");
    }).catch(function(err){
        console.info("commitModify failed with error:"+ err);
    });
}

getFileAssets7+

getFileAssets(options: MediaFetchOptions, callback: AsyncCallback<FetchFileResult>): void

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

需要权限:ohos.permission.READ_MEDIA

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

参数

参数名类型必填说明
options[MediaFetchOptions]媒体检索选项。
callbackAsyncCallback<[FetchFileResult]>异步返回FetchFileResult之后的回调。

示例

async function example() {
    let AlbumNoArgsfetchOp = {
        selections: '',
        selectionArgs: [],
    };
    const albumList = await media.getAlbums(AlbumNoArgsfetchOp);
    const album = albumList[0];
    album.getFileAssets(fileNoArgsfetchOp, getFileAssetsCallBack);
    function getFileAssetsCallBack(err, fetchFileResult) {
        // do something
    }
}

getFileAssets7+

getFileAssets(options?: MediaFetchOptions): Promise<FetchFileResult>

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

需要权限:ohos.permission.READ_MEDIA

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

参数

参数名类型必填说明
options[MediaFetchOptions]媒体检索选项。

返回值

类型说明
Promise<[FetchFileResult]>返回FetchFileResult对象。

示例

async function example() {
    let AlbumNoArgsfetchOp = {
        selections: '',
        selectionArgs: [],
    };
    const albumList = await media.getAlbums(AlbumNoArgsfetchOp);
    const album = albumList[0];
    album.getFileAssets(fileNoArgsfetchOp).then(function(albumFetchFileResult){
        console.info("getFileAssets successfully:"+ JSON.stringify(albumFetchFileResult));
    }).catch(function(err){
        console.info("getFileAssets failed with error:"+ err);
    });
}

PeerInfo8+

注册设备的信息。

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

名称类型可读可写说明
deviceNamestring注册设备的名称
networkIdstring注册设备的网络ID
deviceType[DeviceType]设备类型
isOnlineboolean是否在线

MediaType8+

枚举,媒体类型。

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

名称默认值说明
FILE1文件
IMAGE3图片
VIDEO4视频
AUDIO5音频

FileKey8+

枚举,文件关键信息。

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

名称默认值说明
IDfile_id文件编号
RELATIVE_PATHrelative_path相对公共目录路径
DISPLAY_NAMEdisplay_name显示名字
PARENTparent父目录id
MIME_TYPEmime_type文件扩展属性
MEDIA_TYPEmedia_type媒体类型
SIZEsize文件大小(单位:字节)
DATE_ADDEDdate_added添加日期(添加文件时间到1970年1月1日的秒数值)
DATE_MODIFIEDdate_modified修改日期(修改文件时间到1970年1月1日的秒数值)
DATE_TAKENdate_taken拍摄日期(文件拍照时间到1970年1月1日的秒数值)
TITLEtitle文件标题
ARTISTartist作者
AUDIOALBUMaudio_album专辑
DURATIONduration持续时间(单位:秒)
WIDTHwidth图片宽度(单位:像素)
HEIGHTheight图片高度(单位:像素)
ORIENTATIONorientation图片显示方向,即顺时针旋转角度,如0,90,180。(单位:度)
ALBUM_IDbucket_id文件所归属的相册编号
ALBUM_NAMEbucket_display_name文件所归属相册名称

DirectoryType8+

枚举,目录类型。

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

名称默认值说明
DIR_CAMERA0表示Camera文件路径
DIR_VIDEO1表示视频路径
DIR_IMAGE2表示图片路径
DIR_AUDIO3表示音频路径
DIR_DOCUMENTS4表示文档路径
DIR_DOWNLOAD5表示下载路径

DeviceType8+

枚举,设备类型。

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

名称默认值说明
TYPE_UNKNOWN0未识别设备
TYPE_LAPTOP1笔记本电脑
TYPE_PHONE2手机
TYPE_TABLET3平板电脑
TYPE_WATCH4智能手表
TYPE_CAR5车载设备
TYPE_TV6电视设备

MediaFetchOptions7+

检索条件。

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

名称类型可读可写必填说明
selectionsstring检索条件,使用[FileKey]中的枚举值作为检索条件的列名。示例: selections: mediaLibrary.FileKey.MEDIA_TYPE + '= ? OR' +mediaLibrary.FileKey.MEDIA_TYPE + '= ?‘,
selectionArgsArray<string>检索条件的值,对应selections中检索条件列的值。 示例: selectionArgs: [mediaLibrary.MediaType.IMAGE.toString(), mediaLibrary.MediaType.VIDEO.toString()],
orderstring检索结果排序方式,使用[FileKey]中的枚举值作为检索结果排序的列,可以用升序或降序排列。示例: 升序排列:order: mediaLibrary.FileKey.DATE_ADDED + " AESC" 降序排列:order: mediaLibrary.FileKey.DATE_ADDED + " DESC"
uri8+string文件URI
networkId8+string注册设备网络ID
extendArgs8+string扩展的检索参数,目前没有扩展检索参数

Size8+

图片尺寸。

名称类型可读可写说明
widthnumber宽(单位:像素)
heightnumber高(单位:像素)

MediaAssetOption(deprecated)

媒体资源选项。

说明: 从API Version 9开始废弃。

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

名称类型必填描述
srcstring本地文件应用沙箱路径。
mimeTypestring媒体MIME(Multipurpose Internet Mail Extensions)类型。 包括:'image/'、'video/'、'audio/'、 'file'。
relativePathstring自定义媒体资源保存位置,例:Pictures/ 不填则保存到默认路径。 image类型默认路径Pictures/ video类型默认路径Videos/ audio类型默认路径Audios/ file类型默认路径Documents/ 。

MediaSelectOption(deprecated)

媒体资源类型选项。

说明: 从API Version 9开始废弃。

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

鸿蒙文档.png

名称类型必填描述 HarmonyOS与OpenHarmony鸿蒙文档籽料:mau123789是v直接拿
typestring媒体类型,包括:image, video, media,当前仅支持media类型
countnumber媒体选择,count = 1表示单选,count大于1表示多选。

到这里我们就基本上学完了这个知识点,当然如果说要真正参与到鸿蒙的开发当中,要学的还有很多。大家可以看看下面这个鸿蒙入门到实战的学习技术路线图:

 而随着鸿蒙的火热,现阶段已有许多Android、前端等开发者看中其未来趋势;想从网上查阅学习,但搜索到的鸿蒙资料都是七零八碎的,对此为了避免大家在学习过程中浪费过多时间,特地根据鸿蒙官方发布文档结合华为内部人员的分享,经过反复修改整理得出:

整套鸿蒙(HarmonyOS NEXT)学习手册(共计1236页)与鸿蒙(HarmonyOS NEXT开发入门&实战教学视频(200集+)发放给大家。

内容包含了:(ArkTS、ArkUI、Stage模型、多端部署、分布式应用开发、音频、视频、WebGL、OpenHarmony多媒体技术、Napi组件、OpenHarmony内核、鸿蒙南向开发、鸿蒙项目实战)等技术知识点。帮助大家在学习鸿蒙路上少走弯路!下面点击↓↓↓拿

废话不多说,接下来好好看下这份资料。

《鸿蒙 (HarmonyOS NEXT)开发基础到实战手册》

OpenHarmony北向、南向开发环境搭建

鸿蒙开发基础》

  1. ArkTS语言

  2. 安装DevEco Studio

  3. 运用你的第一个ArkTS应用

  4. ArkUI声明式UI开发

  5. .……

《鸿蒙开发进阶》

  1. Stage模型入门

  2. 网络管理

  3. 数据管理

  4. 电话服务

  5. 分布式应用开发

  6. 通知与窗口管理

  7. 多媒体技术

  8. 安全技能

  9. 任务管理

  10. WebGL

  11. 国际化开发

  12. 应用测试

  13. DFX面向未来设计

  14. 鸿蒙系统移植和裁剪定制

  15. ……

《鸿蒙开发实战》

  1. ArkTS实践

  2. UIAbility应用

  3. 网络案例

  4. ……

《鸿蒙 (HarmonyOS NEXT)开发入门&实战教学视频》  

↑↑↑点击即可

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/665631.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

改进YOLOv8系列:构建新型单头transformer模块,加入到骨干尾部

改进YOLOv8系列:构建新型单头transformer模块,加入到骨干尾部 需要修改的代码self attention代码创建yaml文件测试是否创建成功本文提供了改进 YOLOv8注意力系列包含不同的注意力机制以及多种加入方式,在本文中具有完整的代码和包含多种更有效加入YOLOv8中的yaml结构,读者…

as keyof GlobalStore

解释 as keyof GlobalStore 在 TypeScript 中&#xff0c;as keyof GlobalStore 是一种类型断言语法。它告诉 TypeScript&#xff0c;返回的值是一个特定类型的值&#xff0c;这里是 GlobalStore 类型的键。这在编译时有助于确保类型安全。 关键点&#xff1a; 类型断言&…

JVM哪些区域可能出现内存溢出,哪些地方需要GC?

GC顾名思义也就是垃圾回收&#xff0c;有人的地方就有江湖&#xff0c;那有数据的地方也理应有垃圾回收&#xff0c;所以思考一下&#xff0c;沿着之前提到过的JVM内存分区&#xff0c;堆&#xff0c;栈&#xff0c;程序计数器&#xff0c;方法区 堆、栈、方法区…

2024.5.30学习记录

1 面经复习 LRU 手写 等 2 代码随想录二刷 3 rosebush完成 upload组件 初步完成 form组件

Stable Diffusion|背景替换只需要两分钟!

今天分享一个用Stable Diffusion换背景的小教程。在以往为产品或照片更换背景时&#xff0c;我们通常需要先仔细地将主体内容抠出&#xff0c;再利用PS或其他图像处理工具将主体与新背景进行融合。这个过程往往需要花费大量的时间和精力。这个方法虽然可行&#xff0c;但不够高…

linux同步搭建多台服务器

前言&#xff1a; 如果在安装服务器的过程中&#xff0c;需要安装多台服务器&#xff0c;同样的配置&#xff0c;同样的步骤就可以使用此方法&#xff0c;搭建集群同步安装 1.配置网卡 想要两台机器进行同步的话&#xff0c;必须网段是同样的&#xff0c;保持在同一网段并且能…

在Android Studio中使用谷歌Gemini代码助手

今天在做android开发的时候&#xff0c;一个项目使用到了gradle8.0&#xff0c;但是我的Android Studuio根本不支持&#xff0c;无可奈何只能从小蜜蜂版本升级了水母 | 2023.3.1版本&#xff0c;但突然发现AS已经集成了Gemini助手。 首先我们需要下载这个版本的&#xff1a; h…

Leetcode:Z 字形变换

题目链接&#xff1a;6. Z 字形变换 - 力扣&#xff08;LeetCode&#xff09; 普通版本&#xff08;二维矩阵的直接读写&#xff09; 解决办法&#xff1a;直接依据题目要求新建并填写一个二维数组&#xff0c;最后再将该二维数组中的有效字符按从左到右、从上到下的顺序读取并…

基于VGG16使用图像特征进行迁移学习的时装推荐系统

前言 系列专栏:【深度学习&#xff1a;算法项目实战】✨︎ 涉及医疗健康、财经金融、商业零售、食品饮料、运动健身、交通运输、环境科学、社交媒体以及文本和图像处理等诸多领域&#xff0c;讨论了各种复杂的深度神经网络思想&#xff0c;如卷积神经网络、循环神经网络、生成对…

AI免费插件 批量条码大师,支持100多种条码类型

没想到在网上看到一款和之前 悟空条码 类似的条码插件&#xff0c;叫批量条码大师&#xff0c;他做的比 悟空条码 功能更强&#xff0c;界面更美观&#xff0c;特分享出来给大家。 本插件采用了BWIPJS条码库&#xff0c;支持110种条码、二维码的生成; 支持批量生成&#xff0c;…

微信小程序-页面导航

一、页面导航 页面导航指的是页面之间的相互跳转&#xff0c;例如&#xff1a;浏览器中实现页面导航的方式有如下两种&#xff1a; 1.<a>链接 2.location.href 二、小程序中实现页面导航的两种方式 1.声明式导航 在页面上声明一个<navigator>导航组件 通过点击…

MySQL复合查询操作【 函数接口集合 | 多表查询 | 子查询 | 表的内连外连】

博客主页&#xff1a;花果山~程序猿-CSDN博客 文章分栏&#xff1a;MySQL之旅_花果山~程序猿的博客-CSDN博客 关注我一起学习&#xff0c;一起进步&#xff0c;一起探索编程的无限可能吧&#xff01;让我们一起努力&#xff0c;一起成长&#xff01; 目录 一&#xff0c;mysql函…

去掉el-table表头右侧类名是gutter,width=17px的空白区域(包括表头样式及表格奇偶行样式和表格自动滚动)

代码如下&#xff1a; <el-table:data"tableData"ref"scroll_Table":header-cell-style"getRowClass":cell-style"styleBack"height"350px"style"width: 100%"><el-table-column prop"id" l…

【Linux】从零开始认识进程间通信 —— 共享内存

送给大家一句话&#xff1a; 吃苦受难绝不是乐事一桩&#xff0c;但是如果您恰好陷入困境&#xff0c;我很想告诉您&#xff1a;“尽管眼前十分困难&#xff0c;可日后这段经历说不定就会开花结果。”请您这样换位思考、奋力前行。 -- 村上春树 &#x1f506;&#x1f506;&…

HTTPS 原理技术

HTTPS原理技术 背景简介原理总结 背景 随着年龄的增长&#xff0c;很多曾经烂熟于心的技术原理已被岁月摩擦得愈发模糊起来&#xff0c;技术出身的人总是很难放下一些执念&#xff0c;遂将这些知识整理成文&#xff0c;以纪念曾经努力学习奋斗的日子。本文内容并非完全原创&am…

业务实战————Uibot6.0 .1多页面商品信息抓取RPA机器人

前言 【案例描述】 鲜果记水果店计划在淘宝电商平台上开设一家新店&#xff0c;小微是该企业运营部分的运营专员&#xff0c;主要负责公司商品上架和管理的工作。 公司计划在开店的新品促销活动中增加水果品类红富士苹果。小微需在商品上架前了解目前平台中销量前列的红富士苹…

【深度密码】神经网络算法在机器学习中的前沿探索

目录 &#x1f69d;前言 &#x1f68d;什么是机器学习 1. 基本概念 2. 类型 3. 关键算法 4. 应用领域 5. 工作流程 &#x1f68b;什么是神经网络 基本结构 &#x1f682;神经网络的工作原理 前向传播&#xff08;Forward Propagation&#xff09;&#xff1a; 损失函…

数据分析案例-在线食品订单数据可视化分析与建模分类

&#x1f935;‍♂️ 个人主页&#xff1a;艾派森的个人主页 ✍&#x1f3fb;作者简介&#xff1a;Python学习者 &#x1f40b; 希望大家多多支持&#xff0c;我们一起进步&#xff01;&#x1f604; 如果文章对你有帮助的话&#xff0c; 欢迎评论 &#x1f4ac;点赞&#x1f4…

【Elasticsearch】IK分词器的下载及使用

安装IK分词器 网址&#xff1a;https://github.com/infinilabs/analysis-ik 3.1.在线安装ik插件&#xff08;较慢,不推荐&#xff09; # 进入容器内部 es为容器名称 docker exec -it es /bin/bash# 在线下载并安装 7.17.21为镜像版本要与之前保持一致 ./bin/elasticsearch-pl…

parallels版虚拟机Linux中安装parallels tools报错

按照一个博客的教程安装的可还是安装不了&#xff0c;请指点指点 1.先是输入name -a 输出&#xff1a;Linux user 6.6.9-arm64 #11 SMP Kali 6.6.9-1kali1 (2024-01-08) aarch64GNU/Linux2.按照版本号找对应的文件并下载 第一个文件&#xff1a; linux-headers-6.6.9-arm64_…