媒体库管理
说明: 该组件从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
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
context | Context | 是 | 传入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] | 是 | 文件获取选项 |
callback | AsyncCallback<[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
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
type | string | 是 | 媒体类型 'deviceChange': 注册设备变更 'albumChange': 相册变更 'imageChange': 图片文件变更 'audioChange': 音频文件变更 'videoChange': 视频文件变更 'fileChange': 文件变更 'remoteFileChange': 注册设备上文件变更 |
callback | callback<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
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
type | string | 是 | 媒体类型 'deviceChange': 注册设备变更 'albumChange': 相册变更 'imageChange': 图片文件变更 'audioChange': 音频文件变更 'videoChange': 视频文件变更 'fileChange': 文件变更 'remoteFileChange': 注册设备上文件变更 |
callback | callback<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] | 是 | 媒体类型 |
displayName | string | 是 | 展示文件名 |
relativePath | string | 是 | 文件保存路径,可以通过[getPublicDirectory]获取不同类型文件的保存路径 |
callback | AsyncCallback<[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] | 是 | 媒体类型 |
displayName | string | 是 | 展示文件名 |
relativePath | string | 是 | 相对路径,可以通过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] | 是 | 公共目录类型 |
callback | AsyncCallback<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] | 是 | 相册获取条件 |
callback | AsyncCallback<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
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
callback | AsyncCallback<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] | 是 | 媒体资源选项。 |
callback | AsyncCallback<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
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
images | Array<string> | 是 | 预览的图片URI("https://","dataability://")列表。 |
index | number | 是 | 开始显示的图片序号。 |
callback | AsyncCallback<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
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
images | Array<string> | 是 | 预览的图片URI("https://","dataability://")列表。 |
callback | AsyncCallback<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
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
images | Array<string> | 是 | 预览的图片URI("https://","dataability://")列表。 |
index | number | 否 | 开始显示的图片序号,不选择时默认为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] | 是 | 媒体选择选项。 |
callback | AsyncCallback<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
名称 | 类型 | 可读 | 可写 | 说明 |
---|---|---|---|---|
id | number | 是 | 否 | 文件资源编号 |
uri | string | 是 | 否 | 文件资源uri(如:dataability:///media/image/2) |
mimeType | string | 是 | 否 | 文件扩展属性 |
mediaType8+ | [MediaType] | 是 | 否 | 媒体类型 |
displayName | string | 是 | 是 | 显示文件名,包含后缀名 |
title | string | 是 | 是 | 文件标题 |
relativePath8+ | string | 是 | 是 | 相对公共目录路径 |
parent8+ | number | 是 | 否 | 父目录id |
size | number | 是 | 否 | 文件大小(单位:字节) |
dateAdded | number | 是 | 否 | 添加日期(添加文件时间到1970年1月1日的秒数值) |
dateModified | number | 是 | 否 | 修改日期(修改文件时间到1970年1月1日的秒数值) |
dateTaken | number | 是 | 否 | 拍摄日期(文件拍照时间到1970年1月1日的秒数值) |
artist8+ | string | 是 | 否 | 作者 |
audioAlbum8+ | string | 是 | 否 | 专辑 |
width | number | 是 | 否 | 图片宽度(单位:像素) |
height | number | 是 | 否 | 图片高度(单位:像素) |
orientation | number | 是 | 是 | 图片显示方向(顺时针旋转角度,如0,90,180 单位:度) |
duration8+ | number | 是 | 否 | 持续时间(单位:毫秒) |
albumId | number | 是 | 否 | 文件所归属的相册编号 |
albumUri8+ | string | 是 | 否 | 文件所归属相册uri |
albumName | string | 是 | 否 | 文件所归属相册名称 |
isDirectory8+
isDirectory(callback: AsyncCallback<boolean>): void
判断fileAsset是否为目录,使用callback方式返回异步结果。
需要权限:ohos.permission.READ_MEDIA
系统能力:SystemCapability.Multimedia.MediaLibrary.Core
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
callback | AsyncCallback<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
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
callback | AsyncCallback<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
参数
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
mode | string | 是 | 打开文件方式,如:'r'(只读), 'w'(只写), 'rw'(读写) |
callback | AsyncCallback<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
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
mode | string | 是 | 打开文件方式,如:'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
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
fd | number | 是 | 文件描述符 |
callback | AsyncCallback<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
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
fd | number | 是 | 文件描述符 |
返回值:
类型 | 说明 |
---|---|
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
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
callback | AsyncCallback<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] | 是 | 缩略图尺寸 |
callback | AsyncCallback<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
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
isFavorite | boolean | 是 | 是否设置为收藏文件, true:设置为收藏文件,false:取消收藏 |
callback | AsyncCallback<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
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
isFavorite | boolean | 是 | 是否设置为收藏文件, 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
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
callback | AsyncCallback<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
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
isTrash | boolean | 是 | 是否设置为垃圾文件 |
callback | AsyncCallback<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
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
isTrash | boolean | 是 | 是否设置为垃圾文件 |
返回值:
类型 | 说明 |
---|---|
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
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
callback | AsyncCallback<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
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
callback | AsyncCallback<[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
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
callbacke | AsyncCallback<[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
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
callback | AsyncCallback<[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
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
index | number | 是 | 要获取的文件的索引,从0开始 |
callback | AsyncCallback<[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
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
index | number | 是 | 要获取的文件的索引,从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
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
callback | AsyncCallback<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
名称 | 类型 | 可读 | 可写 | 说明 |
---|---|---|---|---|
albumId | number | 是 | 否 | 相册编号 |
albumName | string | 是 | 是 | 相册名称 |
albumUri8+ | string | 是 | 否 | 相册Uri |
dateModified | number | 是 | 否 | 修改日期 |
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
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
callback | AsyncCallback<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] | 是 | 媒体检索选项。 |
callback | AsyncCallback<[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
名称 | 类型 | 可读 | 可写 | 说明 |
---|---|---|---|---|
deviceName | string | 是 | 否 | 注册设备的名称 |
networkId | string | 是 | 否 | 注册设备的网络ID |
deviceType | [DeviceType] | 是 | 否 | 设备类型 |
isOnline | boolean | 是 | 否 | 是否在线 |
MediaType8+
枚举,媒体类型。
系统能力: 以下各项对应的系统能力均为SystemCapability.Multimedia.MediaLibrary.Core
名称 | 默认值 | 说明 |
---|---|---|
FILE | 1 | 文件 |
IMAGE | 3 | 图片 |
VIDEO | 4 | 视频 |
AUDIO | 5 | 音频 |
FileKey8+
枚举,文件关键信息。
系统能力: 以下各项对应的系统能力均为SystemCapability.Multimedia.MediaLibrary.Core
名称 | 默认值 | 说明 |
---|---|---|
ID | file_id | 文件编号 |
RELATIVE_PATH | relative_path | 相对公共目录路径 |
DISPLAY_NAME | display_name | 显示名字 |
PARENT | parent | 父目录id |
MIME_TYPE | mime_type | 文件扩展属性 |
MEDIA_TYPE | media_type | 媒体类型 |
SIZE | size | 文件大小(单位:字节) |
DATE_ADDED | date_added | 添加日期(添加文件时间到1970年1月1日的秒数值) |
DATE_MODIFIED | date_modified | 修改日期(修改文件时间到1970年1月1日的秒数值) |
DATE_TAKEN | date_taken | 拍摄日期(文件拍照时间到1970年1月1日的秒数值) |
TITLE | title | 文件标题 |
ARTIST | artist | 作者 |
AUDIOALBUM | audio_album | 专辑 |
DURATION | duration | 持续时间(单位:秒) |
WIDTH | width | 图片宽度(单位:像素) |
HEIGHT | height | 图片高度(单位:像素) |
ORIENTATION | orientation | 图片显示方向,即顺时针旋转角度,如0,90,180。(单位:度) |
ALBUM_ID | bucket_id | 文件所归属的相册编号 |
ALBUM_NAME | bucket_display_name | 文件所归属相册名称 |
DirectoryType8+
枚举,目录类型。
系统能力: 以下各项对应的系统能力均为SystemCapability.Multimedia.MediaLibrary.Core
名称 | 默认值 | 说明 |
---|---|---|
DIR_CAMERA | 0 | 表示Camera文件路径 |
DIR_VIDEO | 1 | 表示视频路径 |
DIR_IMAGE | 2 | 表示图片路径 |
DIR_AUDIO | 3 | 表示音频路径 |
DIR_DOCUMENTS | 4 | 表示文档路径 |
DIR_DOWNLOAD | 5 | 表示下载路径 |
DeviceType8+
枚举,设备类型。
系统能力: 以下各项对应的系统能力均为SystemCapability.Multimedia.MediaLibrary.Core
名称 | 默认值 | 说明 |
---|---|---|
TYPE_UNKNOWN | 0 | 未识别设备 |
TYPE_LAPTOP | 1 | 笔记本电脑 |
TYPE_PHONE | 2 | 手机 |
TYPE_TABLET | 3 | 平板电脑 |
TYPE_WATCH | 4 | 智能手表 |
TYPE_CAR | 5 | 车载设备 |
TYPE_TV | 6 | 电视设备 |
MediaFetchOptions7+
检索条件。
系统能力: 以下各项对应的系统能力均为SystemCapability.Multimedia.MediaLibrary.Core
名称 | 类型 | 可读 | 可写 | 必填 | 说明 |
---|---|---|---|---|---|
selections | string | 是 | 是 | 是 | 检索条件,使用[FileKey]中的枚举值作为检索条件的列名。示例: selections: mediaLibrary.FileKey.MEDIA_TYPE + '= ? OR' +mediaLibrary.FileKey.MEDIA_TYPE + '= ?‘, |
selectionArgs | Array<string> | 是 | 是 | 是 | 检索条件的值,对应selections中检索条件列的值。 示例: selectionArgs: [mediaLibrary.MediaType.IMAGE.toString(), mediaLibrary.MediaType.VIDEO.toString()], |
order | string | 是 | 是 | 否 | 检索结果排序方式,使用[FileKey]中的枚举值作为检索结果排序的列,可以用升序或降序排列。示例: 升序排列:order: mediaLibrary.FileKey.DATE_ADDED + " AESC" 降序排列:order: mediaLibrary.FileKey.DATE_ADDED + " DESC" |
uri8+ | string | 是 | 是 | 否 | 文件URI |
networkId8+ | string | 是 | 是 | 否 | 注册设备网络ID |
extendArgs8+ | string | 是 | 是 | 否 | 扩展的检索参数,目前没有扩展检索参数 |
Size8+
图片尺寸。
名称 | 类型 | 可读 | 可写 | 说明 |
---|---|---|---|---|
width | number | 是 | 是 | 宽(单位:像素) |
height | number | 是 | 是 | 高(单位:像素) |
MediaAssetOption(deprecated)
媒体资源选项。
说明: 从API Version 9开始废弃。
系统能力: 以下各项对应的系统能力均为SystemCapability.Multimedia.MediaLibrary.Core
名称 | 类型 | 必填 | 描述 |
---|---|---|---|
src | string | 是 | 本地文件应用沙箱路径。 |
mimeType | string | 是 | 媒体MIME(Multipurpose Internet Mail Extensions)类型。 包括:'image/'、'video/'、'audio/'、 'file'。 |
relativePath | string | 否 | 自定义媒体资源保存位置,例:Pictures/ 不填则保存到默认路径。 image类型默认路径Pictures/ video类型默认路径Videos/ audio类型默认路径Audios/ file类型默认路径Documents/ 。 |
MediaSelectOption(deprecated)
媒体资源类型选项。
说明: 从API Version 9开始废弃。
系统能力: 以下各项对应的系统能力均为SystemCapability.Multimedia.MediaLibrary.Core
名称 | 类型 | 必填 | 描述 HarmonyOS与OpenHarmony鸿蒙文档籽料:mau123789是v直接拿 |
---|---|---|---|
type | string | 是 | 媒体类型,包括:image, video, media,当前仅支持media类型 |
count | number | 是 | 媒体选择,count = 1表示单选,count大于1表示多选。 |
到这里我们就基本上学完了这个知识点,当然如果说要真正参与到鸿蒙的开发当中,要学的还有很多。大家可以看看下面这个鸿蒙入门到实战的学习技术路线图:
而随着鸿蒙的火热,现阶段已有许多Android、前端等开发者看中其未来趋势;想从网上查阅学习,但搜索到的鸿蒙资料都是七零八碎的,对此为了避免大家在学习过程中浪费过多时间,特地根据鸿蒙官方发布文档结合华为内部人员的分享,经过反复修改整理得出:
整套鸿蒙(HarmonyOS NEXT)学习手册(共计1236页)与鸿蒙(HarmonyOS NEXT)开发入门&实战教学视频(200集+)发放给大家。
内容包含了:(ArkTS、ArkUI、Stage模型、多端部署、分布式应用开发、音频、视频、WebGL、OpenHarmony多媒体技术、Napi组件、OpenHarmony内核、鸿蒙南向开发、鸿蒙项目实战)等技术知识点。帮助大家在学习鸿蒙路上少走弯路!下面点击↓↓↓拿
废话不多说,接下来好好看下这份资料。
《鸿蒙 (HarmonyOS NEXT)开发基础到实战手册》
OpenHarmony北向、南向开发环境搭建
《鸿蒙开发基础》
ArkTS语言
安装DevEco Studio
运用你的第一个ArkTS应用
ArkUI声明式UI开发
.……
《鸿蒙开发进阶》
Stage模型入门
网络管理
数据管理
电话服务
分布式应用开发
通知与窗口管理
多媒体技术
安全技能
任务管理
WebGL
国际化开发
应用测试
DFX面向未来设计
鸿蒙系统移植和裁剪定制
……
《鸿蒙开发实战》
ArkTS实践
UIAbility应用
网络案例
……
《鸿蒙 (HarmonyOS NEXT)开发入门&实战教学视频》
↑↑↑点击即可