openharmony 鸿蒙 medialibrary-asset-management-faq

2026-08-25 浏览 (1)

如何正确管理媒体资源

Media Library Kit(媒体文件管理服务)提供了媒体资源的管理能力,开发者可以访问和修改相册中的媒体信息。

注意:

Media Library Kit仅提供图片和视频的管理能力,不涉及音频文件的管理。

媒体资源的常用路径表示

有多种路径形式来表示媒体资源,对应了不同的含义和使用场景,作为媒体资源的唯一标识,可在媒体资源管理过程中的部分媒体文件操作中被使用。

类型形式举例说明
URIfile://media/Photo/<ID>/<真实文件名(无后缀)>/<displayName>图片:
file://media/Photo/111/IMG_1234567890_123/A.jpg
视频:
file://media/Photo/222/VID_1234567890_321/B.mp4
字段定义与使用方式详见媒体文件URI
Path(媒体沙箱路径)/data/storage/el2/media/Photo/<ID>/<真实文件名(无后缀)>/<displayName>图片:
/data/storage/el2/media/Photo/111/IMG_1234567890_123/A.jpg
视频:
/data/storage/el2/media/Photo/222/VID_1234567890_321/B.mp4
媒体沙箱路径用于三方应用访问媒体资源。
真实路径/storage/cloud/100/files/Photo/<所在桶目录>/<真实文件名>图片:
/storage/cloud/100/files/Photo/1/IMG_1234567890_123.jpg
视频:
/storage/cloud/100/files/Photo/2/VID_1234567890_321.mp4
媒体资源在设备文件系统内实际保存的位置。

标准媒体文件操作流程

媒体文件操作标准实现方式
新增(仅系统应用)创建媒体资源
删除(仅系统应用)将文件放入回收站
获取获取指定媒体资源
获取图片和视频缩略图
使用Picker选择媒体库资源
重命名重命名媒体资源
保存到图库保存媒体库资源
对用户相册内媒体文件进行操作添加图片和视频到用户相册中
获取用户相册中的图片和视频
从用户相册中移除图片和视频

常见问题

能否通过修改生成或自行构造的媒体库路径来新增、删除、获取、重命名、移动文件或文件夹

不可以。因为媒体库URI和Path为虚拟路径,是通过组合媒体资源的部分属性来对媒体文件进行唯一标识,并非实际存在对应目录层级,也不存在真实的物理文件,需要通过媒体库内部的寻址方式才能进行有效的媒体文件操作。若使用修改生成或自行构造的媒体库路径对媒体文件进行操作,可能会造成非预期的文件操作结果。

以下是常见错误用法示例(以媒体库虚拟路径“/data/storage/el2/media/Photo/111/IMG_1234567890_123/A.jpg”为例):

  1. 截断生成的媒体路径。

    1.1 从路径尾部删除部分目录层级。例如:

    • 删除displayName部分:/data/storage/el2/media/Photo/111/IMG_1234567890_123/
    • 删除真实文件名 + displayName部分:/data/storage/el2/media/Photo/111/
    • 删除路径尾部的更多层级。

    以上得到的路径均为无效的媒体库目录,不能用来表示媒体资源父目录。

    1.2 删除路径中的某些目录层级。例如:

    • 删除真实文件名部分:/data/storage/el2/media/Photo/111/A.jpg
    • 删除ID部分:/data/storage/el2/media/Photo/IMG_1234567890_123/A.jpg
    • 删除其他目录层级。

    这些路径均为非法的媒体库目录,不能表示在某个目录层级下进行图片的新增或移动。

  2. 修改生成的媒体路径。

    2.1 更改路径中的displayName。例如将“A.jpg”替换为“B.xxx”,得到“/data/storage/el2/media/Photo/111/IMG_1234567890_123/B.xxx”。这是一个非法的媒体库路径,不能表示在“原目录”下创建新文件“B.xxx”。

    2.2 更改路径中的ID。例如将路径中的ID从111替换为1111,得到“/data/storage/el2/media/Photo/1111/IMG_1234567890_123/A.jpg”。这也是一个非法的媒体库路径,不能作为将ID=111的“A.jpg”映射到另一个ID=1111的实现方式。

    2.3 更改路径中的其他目录层级。

上述通过截断、修改媒体库目录层级而构造出的路径,均为非法的媒体库路径。如果针对这些非法路径使用增、删、改、查的相关接口(如fs.stat、fs.lstat、fs.access、fs.open、fs.close、fs.read、fs.write、fs.unlink等),均会造成非预期的结果。

为确保正确性与稳定性,请务必通过标准媒体文件操作流程进行媒体文件管理。

你可能感兴趣的鸿蒙文章

openharmony 鸿蒙 i18n-ui-design

openharmony 鸿蒙 i18n-sorting-local

openharmony 鸿蒙 i18n-numbers-weights-measures

openharmony 鸿蒙 i18n-l10n

openharmony 鸿蒙 i18n-preferred-language

openharmony 鸿蒙 Readme-EN

openharmony 鸿蒙 i18n-language-region-display

openharmony 鸿蒙 pseudo-i18n-testing-translation

openharmony 鸿蒙 i18n-calendar

openharmony 鸿蒙 i18n-dst-transition

  • 所属分类: 后端技术
  • 本文标签: 软件 鸿蒙
  • 版权声明: 本文链接 https://seaxiang.com/blog/ynkRewqA