OpenHarmony多媒体-mp3agic

简介

mp3agic 用于读取 mp3 文件和读取/操作 ID3 标签(ID3v1 和 ID3v2.2 到 ID3v2.4),协助开发者处理繁琐的文件操作相关,多用于操作文件场景的业务应用。

效果展示:

下载安装

复制代码
ohpm install @ohos/mp3agic

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

使用说明

提供多种ID3v1NoTrackTest、ID3v1TagOrID3v2TagTest等测试跳转页面,index为主入口界面。

入口初始化:按钮测试列表,点击对应按钮进行测试。

第一步:初始化 Mp3File

复制代码
let mp3file = new Mp3File(this.path)

第二步:获取tag,并获取数据详情信息

复制代码
let id3v1Tag: ID3v1 = mp3file.getId3v1Tag();
console.log('mp3agic Id3v1Tag Track: ' + id3v1Tag.getTrack());
console.log('mp3agic Id3v1Tag Artist: ' + id3v1Tag.getArtist());

更多详细用法请参考开源库sample页面的实现

组件测试方法

  1. hap签名使用cn.openharmony.mp3agic(可以依据自己定义,需要修改推送文件的脚本的hap名称与自定义一致即可)
  2. 安装好hap,点击进入应用。(不进入有可能文件推送不成功)
  3. 执行entry\src\main\resources\media下的pushMP3File.bat脚本会将使用到的文件推送到指定目录。
  4. hdc shell 进入板端,然后进到该目录 /data/app/el2/100/base/cn.openharmony.mp3agic/haps/entry,接着通过ls -al查看files文件夹的属性。 将files下的文件全部修改和files文件夹一致的属性。 参考命令:chown 20010032:20010032 .
  5. 修改完成即可点击页面点击对应按钮,通过命令过滤 查看日志(hilog | grep mp3agiclog)

注意事项:

sample内置的测试资源文件是通过git lfs的方式上传的,如果直接下载项目的zip包,得到的资源文件只是一个快捷方式,需要进资源文件目录手动下载。或者通过git clone的方式下载代码,这样得到的资源文件是完整的。

接口说明

复制代码
let mp3file = new Mp3File('xxxxxxpath');
  1. 获取3v1本版标签:mp3file.getId3v1Tag()
  2. 判断是否有3v1本版标签:mp3file.hasId3v1Tag()
  3. 判断是否有3v2本版标签:mp3file.hasId3v2Tag()
  4. 获取MP3文件帧数:mp3file.getFrameCount()
  5. 获取起始设置:mp3file.getStartOffset()
  6. 获取结束设置:mp3file.getEndOffset()
  7. 获取MP3长度,单位毫秒:mp3file.getLengthInMilliseconds()
  8. 获取MP3长度,单位秒:mp3file.getLengthInSeconds()
  9. 是否为VBR编码,不是为 CBR编码:mp3file.isVbr()
  10. 获取码率:mp3file.getBitrate()
  11. 获取渠道模式:mp3file.getChannelMode() ...

约束与限制

在下述版本验证通过

  • DevEco Studio 版本: 4.1 Canary(4.1.3.317)
  • OpenHarmony SDK:API11 (4.1.0.36)

目录结构

复制代码
|---- mp3agic  
|     |---- entry  # 示例代码文件夹
|     |---- library  # mp3agic库文件夹
|          |---- src
|            |---- main
|              |---- ets
|                  |---- commonents
|                    |---- mp3agic   # 核心库代码文件夹
|                       |---- Mp3File.ets   # mp3文件操作类
|                       |---- ID3v22Tag.ets   # 2.0标签
|                       |---- ID3v23Tag.ets   # 3.0版本标签
|                       |---- ID3v24Tag.ets   # 4.0版本标签
|                       |---- ID3v2Frame.ets   # 音频包数据封装
|                       |---- ID3v2TextFrameData.ets   # 文本数据
|                       |---- ID3v2ChapterFrameData.ets   # 章节帧数据
|                       ......
|           |---- index.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.鸿蒙南向开发方向

相关推荐
颜进强2 小时前
01 · NestJS 是什么:用途、解决什么问题、与热门框架对比
前端·后端·ai编程
wendZzoo2 小时前
前端工程师的 3D 第一课:一个模型如何进入网页
前端
颜进强3 小时前
04 · NestJS 依赖注入:你在 `@Module` 写的 providers,和构造参数里那个类型,是怎么"对上"的?
前端·后端·ai编程
马剑威(威哥爱编程)3 小时前
【共创稿事节】HarmonyOS 7 文搜图实战:自然语言检索本地图片,全流程端侧闭环
华为·harmonyos
李游Leo3 小时前
HarmonyOS 7 HAR + HSP 工程化实战:模块复用、包体积控制与依赖边界
harmonyos
肆仲冬3 小时前
不用框架,用 TypeScript 从零搭一个 Agent 框架
前端
林语琛3 小时前
我写的 switch…break 被 Babel 偷偷吞了
前端·javascript·babel
烈风逍遥3 小时前
第六篇:RAG 知识库构建与检索全链路
前端·人工智能·后端
爱丶不疚3 小时前
什么是 Jev 决策模型?它适合干什么?
前端·agent
江畔柳前堤3 小时前
字节跳动·大模型应用知识手册
前端·人工智能·深度学习·opencv·目标检测·重构·transformer