• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

鸿蒙OS 媒体存储数据操作开发指导

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

场景介绍

媒体存储是提供了操作媒体图片、视频、音频等元数据的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")));

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
鸿蒙OS 媒体扫描服务操作开发指导发布时间:2022-02-02
下一篇:
鸿蒙OS 媒体元数据获取开发指导发布时间:2022-02-02
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap