树叶云鸿蒙OS教程:鸿蒙OS 媒体存储数据操作开发指导

场景介绍

媒体存储是提供了操作媒体图片、视频、音频等元数据的Uri 链接信息。

接口说明

接口名描述
appendPendingResource(Uri uri)更新给定的 Uri,用于处理包含待处理标记的媒体项。
appendRequireOriginalResource(Uri uri)更新给定的 Uri, 用于调用者获取原始文件内容。
fetchVolumeName(Uri uri)获取给定 Uri 所属的卷名。
fetchExternalVolumeNames(Context context)获取所有组成 external 的特定卷名的列表。
fetchMediaResource(Context context, Uri documentUri)根据文档式的 Uri 获取对应的媒体式的Uri。
fetchDocumentResource(Context context, Uri mediaUri)根据媒体式的 Uri 获取对应的文档式的Uri。
fetchVersion(Context context)获取卷名为 external_primary 的不透明版本信息。
fetchVersion(Context context, String volumeName)获取指定卷名的不透明版本信息。
fetchLoggerResource()获取用于查询媒体扫描状态的 Uri。
Audio.convertNameToKey(String name)将艺术家或者专辑名称转换为可用于分组,排序和搜索的“key”。
Audio.Media.fetchResource(String volumeName)获取用于处理音频媒体信息的 Uri。
Audio.Genres.fetchResource(String volumeName)获取用于处理音频流派信息的 Uri。
Audio.Genres.fetchResourceForAudioId(String volumeName, int audioId)获取用户处理音频文件对应的流派信息的 Uri。
Audio.Genres.Members.fetchResource(String volumeName, long genreId)获取用于处理音频流派子目录的成员信息的 Uri。
Audio.Playlists.fetchResource(String volumeName)获取用于处理音频播放列表信息的 Uri。
Audio.Playlists.Members.fetchResource(String volumeName, long playlistId)获取用于处理音频播放列表子目录的成员信息的 Uri。
Audio.Playlists.Members.updatePlaylistItem(DataAbilityHelper dataAbilityHelper, long playlistId, int oldLocation, int newLocation)移动播放列表到新位置。
Audio.Albums.fetchResource(String volumeName)获取用于处理音频专辑信息的 Uri。
Audio.Artists.fetchResource(String volumeName)获取用于处理音频艺术家信息的 Uri。
Audio.Artists.Albums.fetchResource(String volumeName, long id)获取用于处理所有专辑出现艺术家的歌曲信息的 Uri。
Audio.Downloads.fetchResource(String volumeName)获取用于处理下载条目信息的 Uri。
Audio.Files.fetchResource(String volumeName)获取用于处理媒体文件及非媒体文件(文本,HTML,PDF等)的 Uri。
Audio.Images.Media.fetchResource(String volumeName)获取用于处理图像媒体信息的 Uri。
Audio.Video.Media.fetchResource(String volumeName)获取用于处理视频媒体信息的 Uri。

开发步骤

以播放视频文件为例:

  1. 获取媒体外部存储提供的Uri链接。
   AVStorage.Video.Media.EXTERNAL_DATA_ABILITY_URI

  1. 根据媒体存储提供的Uri链接操作媒体元数据。
   DataAbilityHelper helper = getDataAbilityHelper(context);
   try {
       DataAbilityPredicates predicates = new DataAbilityPredicates();
       // 设置查询过滤条件
       predicates.equalTo(AVStorage.Video.Media.DATA, "xxxxx");
        // columns为null,查询记录所有字段,当前例子表示查询id字段
       ResultSet result = helper.query(AVStorage.Video.Media.EXTERNAL_DATA_ABILITY_URI, new String[]{AVStorage.Video.Media.ID}, predicates);
       if (result == null) {
           return;
       }
       while (result.goToNextRow()) {
           result.getInt(result.getColumnIndexForName(AVStorage.Video.Media.ID)); // 获取id字段的值
       }
       result.close();
   } catch (DataAbilityRemoteException e) {
       // ...
   }

  1. 获取到媒体 ID 后,即可通过设置媒体源来进行业务操作,如:播放。
   Uri uri = Uri.appendEncodedPathToUri​(AVStore.Video.Media.EXTERNAL_DATA_ABILITY_URI, String.valueOf(id)); // id为步骤2获取到的id
   Player player = new Player(context);
   DataAbilityHelper helper = getDataAbilityHelper(context);
   player.setSource(new Source(helper.openFile(uri, "r")));

文章来源网络,作者:管理,如若转载,请注明出处:https://shuyeidc.com/wp/173488.html<

(0)
管理的头像管理
上一篇2025-03-23 19:41
下一篇 2025-03-23 19:42

相关推荐

  • 骨干网络体系结构能干什么?骨干网络体系结构的作用

    骨干网络体系结构是现代信息社会的“超级高速公路网”,它通过分层设计、冗余备份和智能调度,确保海量数据在全球范围内高速、稳定、安全地传输,是支撑云计算、物联网及人工智能应用的底层基石,想象一下,如果你把互联网比作一个巨大的城市交通系统,那么骨干网络就是连接各个城市的主干道和立交桥,没有它,你的每一次微信发送、每一……

    2026-06-18
    0
  • 高io数据库可以干什么用?高io数据库适合什么场景

    高IO数据库的核心价值在于通过极高的读写吞吐量,解决海量数据场景下的性能瓶颈,是支撑高并发交易、实时分析及大规模内容分发的关键基础设施,在数字化转型的深水区,数据不再仅仅是静态的记录,而是流动的资产,传统的机械硬盘或普通SSD早已无法满足现代应用对速度的极致追求,高IO(Input/Output)数据库,就是那……

    2026-06-18
    0
  • 高io服务器性能如何?高io服务器适合什么场景

    高IO服务器并非单纯指代某种硬件,而是指在随机读写、高并发连接及小文件处理场景下,具备极致IOPS(每秒输入输出操作次数)和低延迟特性的计算资源,它是支撑现代高并发应用稳定运行的核心基石,在2026年的数字化浪潮中,业务负载早已从简单的静态页面展示演变为复杂的实时数据处理,许多开发者在排查系统瓶颈时,往往忽略了……

    2026-06-18
    0
  • 隔离网络空间哪里便宜?国内隔离网络空间价格

    隔离网络空间并没有统一的“便宜”标准,其成本高度取决于物理隔离等级、带宽需求及安全合规要求,通常物理网闸方案初期投入较高但长期运维成本低,而逻辑隔离方案虽初期便宜但存在潜在安全风险,建议根据业务敏感度选择混合隔离架构以平衡成本与安全,在数字化时代,企业构建独立网络环境的需求日益增长,但“隔离网络空间哪里便宜”这……

    2026-06-18
    0
  • 骨干网络体系结构设备为何故障?常见原因有哪些

    骨干网络体系结构设备故障的核心原因通常归结为硬件老化、配置错误、物理链路中断及外部攻击四大类,其中电源模块失效与光模块性能衰减是占比最高的隐性故障源,骨干网作为数字经济的“大动脉”,其稳定性直接关乎国计民生,当核心路由器或交换机出现丢包、震荡甚至宕机时,运维人员往往面临巨大的压力,很多人第一反应是检查软件配置……

    2026-06-18
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注