阅读(2451)
赞(10)
鸿蒙OS 媒体扫描服务操作开发指导
2020-09-17 09:23:16 更新
场景介绍
媒体扫描服务从新创建或下载的媒体文件中读取元数据,并将文件添加到媒体数据库中。
接口说明
接口名 | 描述 |
---|---|
performLoggerFile(String path, String mimeType) | 请求通过文件的路径和类型扫描一个媒体文件。 |
performLoggerFile(Context context, String[] paths, String[] mimeTypes, AVLogCompletedListener callback) | 一次扫描多个媒体文件。 |
connect() | 连接到扫描服务。 |
disconnect() | 从扫描服务断开连接。 |
isConnected() | 检查扫描服务是否已连接。 |
开发步骤
媒体扫描服务分为动态调用和静态调用,以扫描文件为例:
动态调用
- 初始化 AVLoggerConnection,并注册回调函数。
public class ZSacnnerTest implements AVLoggerScannerConnectionClient {
private AVLoggerConnection zScanConn;
public ZSacnnerInterTest(Context context) {
// 实例化
zScanConn = new AVLoggerConnection(context, this);
}
// ...
}
- 连接媒体扫描服务。
zScanConn.onConnect(); // 连接扫描服务
- 在onLoggerConnected回调函数中执行扫描。
@Override
public void onLoggerConnected() {
zScanConn.performLoggerFile(filePaths[i], mimeTypes[i]); // 服务回调执行扫描
}
- 在 onLogCompleted 回调函数中通知扫描结果。
@Override
public void onLogCompleted(String path, String uri) {
// 回调函数返回URI的值
zScanConn.disConnect(); // 断开扫描服务
}
静态调用
- AVLoggerConnection 静态方法 performLoggerFile, 扫描结果在 onLogCompleted 中通知。
AVLoggerConnection.performLoggerFile(this, filePaths, null, new AVScanCompletedListener(){
@Override
public void onLogCompleted(String path, String uri) {
}
});