1. mediatool工具简介

媒体库在API10后,资源文件的底层存储方式将对应用开发者和用户透明。这导致,无法通过API9之前hdc file send+hdc shell scanner的方式,从电脑预制资源进入媒体库。因此,API10后,媒体库提供了mediatool工具,放置在/bin文件夹中,可以通过hdc shell直接调用。

2. 用法介绍

2.1 mediatool send

工具依赖mediatool send来将文件推入媒体库中。具体的使用方法如下:

hdc file send 01.jpg /data/tmp/source.jpg
hdc shell mediatool send /data/tmp/source.jpg

通过该方法,可以在媒体库中预制一个display_name为source.jpg的媒体文件。如果需要预制其他名字的媒体文件,需要将文件推入设备后,更改文件名,再由mediatool推送。

也可以将目标设置为一个文件夹,mediatool会将文件夹的所有子文件置入媒体库

hdc shell mediatool send /data/tmp

可以有以下的可选参数,用于指定一些置入媒体的形式:

  • -ts:同步生成缩略图
  • -tas:异步生成缩略图(默认)
  • -rf:置入后删除源文件(默认)
  • -urf:置入后不删除源文件

mediatool只会置入图片、视频、音频类型的文件。

如果置入成功,会打印生成文件的uri,如下所示:

> mediatool send /data/tmp/source.jpg
file://media/Photo/1/IMG_1692205897_000/01.jpg

2.2 mediatool list

可以展示媒体库的内容,支持展示Photo、Audio类型,可以展示单个文件或者全体文件,如果需要展示单个文件,在mediatool list后面添加uri;如果需要展示全部文件,添加all,如下所示:

hdc file list file://media/Photo/1    # 展示第一个Photo
hdc file list all                     # 展示全部的媒体库内容

当前展示只支持展示uri、displayName(展示名)、data(文件位置)三种内容,展示的格式如下:

> mediatool list all
Table Name: Photos
uri,display_name,data
"file://media/Photo/1/IMG_1692205897_000/01.jpg","01.jpg","/storage/cloud/files/Photo/16/IMG_1692205897_000.jpg"
"file://media/Photo/2/VID_1692205899_000/01.mp4","01.mp4","/storage/cloud/files/Photo/16/VID_1692205899_000.mp4"

Table Name: Audios
uri,display_name,data
"file://media/Audio/1/AUD_1692205901_000/01.mp3","01.mp3","/storage/cloud/files/Audio/16/AUD_1692205901_000.mp3"

2.3 mediatool recv

可以将媒体库的内容,传输到设备内的某个位置(该位置需要有访问权限)。支持获取单个文件或者全体文件,如果需要展示单个文件,在mediatool recv后面添加uri;如果需要展示全部文件,添加all,如下所示:

hdc shell mediatool recv file://media/Photo/1 /data/tmp   # 获取第一个Photo,放到tmp位置
hdc shell mediatool recv all /data/tmp                    # 获取全部的媒体库内容,放到tmp位置

如果需要获取uri,可以先用mediatool list all指令。

如果希望获取全部图片到本地,可以使用以下的bat脚本:

hdc shell mediatool recv all /data/tmp
hdc shell tar -cvf /data/files.tar /data/tmp/*
hdc file recv /data/files.tar .

2.4 mediatool delete

为了让测试人员更好的实现自动化测试,mediatool增加了删除的功能。支持通过uri删除单个文件,或者删除全部文件:

hdc shell mediatool delete file://media/Photo/1/IMG_1692205897_000/01.jpg
hdc shell mediatool delete all

其中,delete all默认情况下将删除所有媒体数据库以及文件的内容。

转载:https://gitee.com/liang-jia-xi/multimedia_medialibrary_standard/wikis/mediatool%20wiki

Logo

社区规范:仅讨论OpenHarmony相关问题。

更多推荐