HarmonyOS-鸿蒙app开发 —基于java媒体扫描服务操作开发指导

HarmonyOS-鸿蒙app开发 —基于java媒体扫描服务操作开发指导

场景介绍

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

接口说明

表1 媒体扫描服务相关类AVLoggerConnection的主要接口

接口名

描述

performLoggerFile(String path, String mimeType)

请求通过文件的路径和类型扫描一个媒体文件。

performLoggerFile(Context context, String[] paths, String[] mimeTypes, AVLogCompletedListener callback)

一次扫描多个媒体文件。

connect()

连接到扫描服务。

disconnect()

从扫描服务断开连接。

isConnected()

检查扫描服务是否已连接。

开发步骤

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

动态调用

初始化AVLoggerConnection,并注册回调函数。

public class ScannerDemo implements AVLoggerConnectionClient {
private AVLoggerConnection scanConn;
public ScannerDemo(Context context) {
// 实例化
scanConn = new AVLoggerConnection(context, this);
}

@Override
public void onLoggerConnected() {
String path = “/path/”;
String mimeType = “video/mp4”;
scanConn.performLoggerFile(path, mimeType); // 服务回调执行扫描,指定要扫描的路径和文件类型
}

@Override
public void onLogCompleted(String path, Uri uri) {
// 回调函数返回扫描到的URI和path的值
scanConn.disconnect(); // 断开扫描服务
}
// …
}

连接媒体扫描服务。

ScannerDemo zScanConn = new ScannerDemo(context);
zScanConn.connect(); // 连接扫描服务

在onLoggerConnected回调函数中执行扫描,开发者通过自定义文件的路径和类型扫描指定媒体文件。

@Override
public void onLoggerConnected() {
scanConn.performLoggerFile(filePaths[i], mimeTypes[i]); // 服务回调执行扫描,指定要扫描的路径和文件类型
}

在onLogCompleted回调函数中通知扫描结果。

@Override
public void onLogCompleted(String path, Uri uri) {
// 回调函数返回扫描到的URI和path的值
scanConn.disconnect(); // 断开扫描服务
}

静态调用

  1. AVLoggerConnection静态方法performLoggerFile, 扫描结果在onLogCompleted中通知。

AVLoggerConnection.performLoggerFile(this, filePaths, null, new AVLogCompletedListener(){
@Override
public void onLogCompleted(String path, Uri uri) {

}
});

0 0 投票数
文章评分
订阅评论
提醒
0 评论
内联反馈
查看所有评论
0
希望看到您的想法,请您发表评论x