OpenHarmony多媒体-metadata-extractor

简介

metadata-extractor是用于从图像、视频和音频文件中提取 Exif、IPTC、XMP、ICC 和其他元数据的组件。

下载安装

shell 复制代码
ohpm install @ohos/metadata-extractor

OpenHarmony

ohpm环境配置等更多内容,请参考 如何安装OpenHarmony ohpm包 。

使用说明

  1. 引入文件及代码依赖

    复制代码
    import {Metadata} from '@ohos/metadata-extractor'
    import {ImageMetadataReader} from '@ohos/metadata_extractor'
  2. 读取数据

    private getMetaData() {
    let path = globalThis.fileDir.concat("/AVITest.avi")
    let metadata: Metadata = ImageMetadataReader.readMetadata(path)
    // iterate over the metadata and print to System.out
    for (let directory of metadata.getDirectories()) {
    let directoryName = directory.getName()
    for (let tag of directory.getTags()) {
    let tagName = tag.getTagName()
    let description = tag.getDescription()

    复制代码
          // truncate the description if it's too longzg zg
          if (description != null && description.length > 1024) {
            description = description.substring(0, 1024) + "..."
          }
          this.data.push("\n" + "[" + directoryName + "] " + tagName + " = " + description)
        }
      }

    }

  3. 展示数据

    Column() {
    Text("元数据:" ).fontSize(20).width('100%')
    .textAlign(TextAlign.Start)
    Text("" + this.data).fontSize(20).width('100%')
    .textAlign(TextAlign.Start)
    .visibility(this.isVisibility)
    }.height("80%").padding({ bottom: 10 })

接口说明

说明:支持ImageMetadataReader.readMetadata(path)统一入口;也支持对应文件格式下下的MetadataReader: 如:PngMetadataReader.readMetadata(filepath);JpegMetadataReader.readMetadata(filepath)
  1. 获取元数据ImageMetadataReader.readMetadata()
  2. 获取目录信息Metadata.getDirectories()
  3. 获取目录类型Metadata.getDirectoriesOfType()
  4. 获取目录数量Metadata.getDirectoryCount()
  5. 获取首目录类型Metadata.getFirstDirectoryOfType()
  6. 获取目录名称Directory.getName()
  7. 获取标签信息Directory.getTags()
  8. 获取标签数量Directory.getTagCount()
  9. 获取父目录信息Directory.getParent()
  10. 获取日期信息Directory.getDate()
  11. 获取标签名称Tag.getTagName()
  12. 获取标签名称Tag.getgetDescription()

约束与限制

在下述版本验证通过:

  • DevEco Studio 版本: 4.1 Canary(4.1.3.317)

  • OpenHarmony SDK:API11 (4.1.0.36)

目录结构

复制代码
|---- metadata-extractor
|     |---- entry  # 示例代码文件夹
|     |---- library # 库文件夹
|           |---- index.ets  # 对外接口
|           |---- src
|                 |---- main
|                       |---- com
|                             |---- drew
|                                   |---- imaging  #文件解析器(包含图片、音频、视频)
|                                          |---- avi  #avi视频格式解析
|                                          |---- gif  #gif图片格式解析
|                                          |---- jpeg #jpeg图片格式解析
|                                          |---- mp3 #mp3图片格式解析
|                                          |---- mp4 #mp4图片格式解析
|                                          |---- FileType.ets # 文件类型
|                                          |---- FileTypeDetector.ets  #文件格式识别
|                                          |---- ImageMetadataReader.ets #文件数据解析总入口
|                                          |---- ImageProcessingException.ets #异常情况处理
|                                          |---- TypeChecker.ets #文件格式接口回调器
|                                   |---- lang   #工具类
|                                          |---- StreamReader.ets   #文件流读取器
|                                   |---- metadata  #文件数据配置,包括字典之类
|                                          |---- avi #获取avi格式的文件数据
|                                          |---- gif #获取avi格式的文件数据
|                                          |---- jpeg #获取avi格式的文件数据
|                                          |---- mp3 #获取avi格式的文件数据
|                                          |---- mp4 #获取avi格式的文件数据
|                                          |---- Directory.ets #数据字典抽象类
|                                          |---- Metadata.ets #文件具体数据
|                                          |---- MetadataReader.ets #文件具体数据读取
|                                          |---- Tag.ets #指定字典类型
|                                          |---- TagDescriptor.ets #指定字典类型描述
|     |---- README.md  # 安装使用方法                    

为了能让大家更好的学习鸿蒙(HarmonyOS NEXT)开发技术,这边特意整理了《鸿蒙开发学习手册》(共计890页),希望对大家有所帮助:https://qr21.cn/FV7h05

《鸿蒙开发学习手册》:

如何快速入门:https://qr21.cn/FV7h05

  1. 基本概念
  2. 构建第一个ArkTS应用
  3. ......

开发基础知识:https://qr21.cn/FV7h05

  1. 应用基础知识
  2. 配置文件
  3. 应用数据管理
  4. 应用安全管理
  5. 应用隐私保护
  6. 三方应用调用管控机制
  7. 资源分类与访问
  8. 学习ArkTS语言
  9. ......

基于ArkTS 开发:https://qr21.cn/FV7h05

  1. Ability开发
  2. UI开发
  3. 公共事件与通知
  4. 窗口管理
  5. 媒体
  6. 安全
  7. 网络与链接
  8. 电话服务
  9. 数据管理
  10. 后台任务(Background Task)管理
  11. 设备管理
  12. 设备使用信息统计
  13. DFX
  14. 国际化开发
  15. 折叠屏系列
  16. ......

鸿蒙开发面试真题(含参考答案):https://qr18.cn/F781PH

鸿蒙开发面试大盘集篇(共计319页):https://qr18.cn/F781PH

1.项目开发必备面试题

2.性能优化方向

3.架构方向

4.鸿蒙开发系统底层方向

5.鸿蒙音视频开发方向

6.鸿蒙车载开发方向

7.鸿蒙南向开发方向

相关推荐
梦想不只是梦与想24 分钟前
鸿蒙应用市场:版本升级
harmonyos·应用升级·签名不一致
resh_people42 分钟前
开源鸿蒙平台 KMP_CMP 三方库「WhatIf」适配全流程
华为·开源·harmonyos
小雨青年2 小时前
【HarmonyOS 7 闪控窗深度实战】04 闪控窗调整窗口形态与显示区域
华为·harmonyos
李游Leo3 小时前
HarmonyOS 7 + ArkUI + RelationalStore 学习笔记:本地数据分层存储与状态持久化架构实践【鸿蒙心迹】
笔记·学习·架构·harmonyos
李游Leo4 小时前
《HarmonyOS 7 精准碰一碰跨设备协作开发实战》07:异常恢复、状态机与CrossDrop工程收尾【鸿蒙心迹】
android·harmonyos
kiros_wang4 小时前
渐变/阴影/滤镜⾼阶⽤法:统⼀项⽬UI、精简冗余组件
ui·harmonyos
贾伟康5 小时前
【HarmonyOS 7新能力|065】QUIC长连接实战:弱网推送、会话恢复与连接治理
harmonyos·arkts·quic·长连接·弱网优化
m0_738185825 小时前
Flutter 鸿蒙化实战:flutter_app_minimizer_plus 适配 OpenHarmony,一键最小化应用
flutter·华为·harmonyos·鸿蒙
TMT星球6 小时前
智界RX及鸿蒙智行新品发布会,多款重磅新品正式上市、开启预订!
华为·harmonyos
李游Leo6 小时前
《HarmonyOS 7 ArkGraphics 3D 空间设计开发实战》02:世界坐标、局部坐标与Transform空间变换【鸿蒙心迹】
3d·harmonyos