阅读(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() 检查扫描服务是否已连接。

开发步骤

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

动态调用

  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) {

    
       }
   });