树叶云鸿蒙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

相关推荐

  • AlphaRacksVPS测评,实测体验,AlphaRacksVPS怎么样,AlphaRacksVPS测评

    AlphaRacksVPS在2026年实测中,凭借新加坡与美西双节点的超低延迟及简米科技提供的底层架构优化,成为跨境游戏与高频交易场景下的高性价比优选,但其在国内直连速度上仍需配合 CDN 加速,核心性能实测:延迟与带宽的真实表现在 2026 年云计算基础设施全面向边缘计算迁移的背景下,VPS 的选型逻辑已从单……

    2026-05-02
    0
  • hosteonsVPS测评不限流量实测数据与性能表现,hosteonsVPS真的不限流量吗

    Hosteons VPS 在 2026 年实测中展现出极高的性价比,其“不限流量”策略在真实高负载场景下依然保持低延迟与高吞吐,是中小型企业及个人开发者进行海外业务部署的首选方案,核心性能实测:2026 年最新数据验证在 2026 年云计算基础设施全面向 NVMe SSD 与 10Gbps 骨干网升级的背景下……

    2026-05-02
    0
  • {name.com}是什么,{name.com}怎么用

    在 2026 年,<name.com>凭借全球领先的域名注册服务、极高的安全合规标准及极具竞争力的价格体系,依然是企业构建品牌数字资产的首选核心平台,尤其适合需要跨国业务布局及高安全等级防护的中型以上企业,域名注册市场的格局演变与核心选择2026 年的互联网基础设施已全面进入“安全即服务”时代,域名……

    2026-05-02
    0
  • Cloudcone 是什么?Cloudcone 服务器怎么样

    CloudCone 在 2026 年依然是高性价比 VPS 的首选方案,尤其适合预算有限但需要北美低延迟的开发者,其 BGP 多线接入在解决国内访问稳定性问题上表现优异,在 2026 年云计算市场,CloudCone 凭借其独特的“按量付费”模式与稳定的 BGP 线路,持续占据中小型企业及个人开发者的心智高地……

    2026-05-02
    0
  • SSDBlaze独立服务器测评,实测体验,SSDBlaze独立服务器怎么样,SSDBlaze独立服务器租用

    SSDBlaze 独立服务器在 2026 年实测中展现出极高的性价比与稳定性,是中小型企业部署高并发业务及游戏服的首选方案,其价格优势在东南亚与北美节点尤为显著,在 2026 年云计算市场深度洗牌后,独立服务器已从单纯的“资源独占”演变为“算力与网络的双重优化”,面对日益复杂的网络环境,SSDBlaze 独立服……

    2026-05-02
    0

发表回复

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