HarmonyOS鸿蒙Next中应用往图库中新建指定目录,并在该目录中新增或删除指定图片或视频
HarmonyOS鸿蒙Next中应用往图库中新建指定目录,并在该目录中新增或删除指定图片或视频 项目中,有相册模块,支持图片或视频等资源,新增或删除等操作,想咨询如何实现,是否支持
可以通过删除媒体文件的接口或操作公共目录数据实现删除操作。
参考文档:
- 删除媒体文件
https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-photoaccesshelper-V5#deleteassets11 - 从数据库中删除一个或多个数据记录
https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-inner-ability-dataabilityhelper-V5#dataabilityhelperdelete
图片保存相关文档;
- 安全控件保存
https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/ts-security-components-savebutton-V5 - 获取相册管理模块
https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-photoaccesshelper-V5#photoaccesshelpergetphotoaccesshelper - 打开文件,实现持续写入
https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-file-fs-V5#fsopen
参考代码
使用getPhotoAccessHelper
、createAsset
、fs.open
、fs.write
等接口将数据存到本地图库中
async saveImage(buffer: ArrayBuffer | string): Promise<void> {
let context = this as common.UIAbilityContext;
let helper = photoAccessHelper.getPhotoAccessHelper(context);
let uri = await helper.createAsset(photoAccessHelper.PhotoType.IMAGE, 'jpg');
let file = await fs.open(uri, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);
await fs.write(file.fd, buffer);
await fs.close(file.fd);
}
使用photoViewPicker.save
、fs.open
、fs.write
等接口将数据存到用户选择路径的数据库中
async pickerSave(buffer: ArrayBuffer | string): Promise<void> {
const photoSaveOptions = new picker.PhotoSaveOptions(); // 创建文件管理器保存选项实例
photoSaveOptions.newFileNames = ['PhotoViewPicker ' + new Date().getTime() + 'jpg'] // 保存文件名(可选)
const photoViewPicker = new picker.PhotoViewPicker;
photoViewPicker.save(photoSaveOptions)
.then(async (photoSvaeResult) => {
console.info('PhotoViewPicker.save successfully,photoSvaeResult uri:' + JSON.stringify(photoSvaeResult));
let uri = photoSvaeResult[0];
let file = await fs.open(uri, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);
await fs.write(file.fd, buffer);
await fs.close(file.fd);
promptAction.showToast({
message: $r('app.string.image_request_success'),
duration: 2000
})
})
}
更多关于HarmonyOS鸿蒙Next中应用往图库中新建指定目录,并在该目录中新增或删除指定图片或视频的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS鸿蒙Next中,应用可以通过PhotoAccessHelper
和FileAsset
接口操作图库。首先,获取PhotoAccessHelper
实例,然后使用createAsset
方法在指定目录中创建图片或视频文件。指定目录可通过createAlbum
方法创建。删除操作则使用deleteAssets
方法,传入要删除的文件URI。具体步骤如下:
-
获取
PhotoAccessHelper
实例:const photoAccessHelper = photoAccessHelper.getPhotoAccessHelper(context);
-
创建指定目录:
const albumName = 'MyAlbum'; const albumUri = await photoAccessHelper.createAlbum(albumName);
-
在指定目录中新增图片或视频:
const assetType = photoAccessHelper.PhotoAssetType.IMAGE; // 或 VIDEO const assetUri = await photoAccessHelper.createAsset(albumUri, 'myImage.jpg', assetType);
-
删除指定图片或视频:
await photoAccessHelper.deleteAssets([assetUri]);
以上操作需确保应用已获取ohos.permission.READ_MEDIA
和ohos.permission.WRITE_MEDIA
权限。
在HarmonyOS鸿蒙Next中,应用可以通过MediaLibrary
API操作图库。首先,使用MediaLibrary.getMediaLibrary()
获取实例,然后通过createAsset()
方法在指定目录中创建图片或视频。删除操作则通过deleteAsset()
实现。确保应用已获取ohos.permission.WRITE_MEDIA
权限。