鸿蒙OS开发文档 鸿蒙OS 媒体扫描服务操作开发指导

2024-02-25 开发教程 鸿蒙OS开发文档 匿名 2

场景介绍

媒体扫描服务从新创建或下载的媒体文件中读取元数据,并将文件添加到媒体数据库中。

接口说明

接口名描述
performLoggerFile(String path, String mimeType)请求通过文件的路径和类型扫描一个媒体文件。
performLoggerFile(Context context, String[] paths, String[] mimeTypes, AVLogCompletedListener callback)一次扫描多个媒体文件。
connect()连接到扫描服务。
disconnect()从扫描服务断开连接。
isConnected()检查扫描服务是否已连接。

开发步骤

媒体扫描服务分为动态调用和静态调用,以扫描文件为例:

动态调用

  1. 初始化 AVLoggerConnection,并注册回调函数。
public class ZSacnnerTest implements AVLoggerScannerConnectionClient {
private AVLoggerConnection zScanConn;
public ZSacnnerInterTest(Context context) {
// 实例化
zScanConn = new AVLoggerConnection(context, this);
}
// ...
}
  1. 连接媒体扫描服务。
zScanConn.onConnect(); // 连接扫描服务
  1. 在onLoggerConnected回调函数中执行扫描。
@Override
public void onLoggerConnected() {
zScanConn.performLoggerFile(filePaths[i], mimeTypes[i]); // 服务回调执行扫描
}
  1. 在 onLogCompleted 回调函数中通知扫描结果。
@Override
public void onLogCompleted(String path, String uri) {
// 回调函数返回URI的值
zScanConn.disConnect(); // 断开扫描服务
}

静态调用

  1. AVLoggerConnection 静态方法 performLoggerFile, 扫描结果在 onLogCompleted 中通知。
AVLoggerConnection.performLoggerFile(this, filePaths, null, new AVScanCompletedListener(){
@Override
public void onLogCompleted(String path, String uri) {
}
});