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.鸿蒙南向开发方向

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/819.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

qt 信号槽

信号槽 前提:如果没有消息循环,那么Qt的信号和槽无法完全使用。最开始的Qt消息循环开始于QCoreApplication::exec。在绝大部分GUI程序中,GetMessage, DispatchMessage是写在一个死循环中的,除非程序退出,否则会一直处…

Docker Desktop打开一直转圈的解决办法

安装Docker Desktop之前确保你的Hyper-V已经打开 开启后需要重新安装重新安装重新安装这是最关键的一步,博主自己看了很多教程,最后试着重装了一下解决了 安装DockerDesktop的时候我的电脑根本就没有Hyper-V这个功能选项,可能是这个问题 如…

达梦数据库的DMRMAN工具介绍

达梦数据库的DMRMAN工具介绍 DMRMAN(DM RECOVERY MANAGER)是 DM 的脱机备份还原管理工具,由它来统一负责库级脱机备份、脱机还原、脱机恢复等相关操作,该工具支持命令行指定参数方式和控制台交互方式执行,降低了用户的…

域名信息查询同款WHOIS源码

域名查询一般是指查询域名的whois注册信息,域名WHOIS是当前域名系统中不可或缺的一项信息服务。在使用域名进行Internet冲浪时,很多用户希望进一步了解域名、名字服务器详细信息 源码免费下载地址抄笔记 (chaobiji.cn)https://chaobiji.cn/

部署轻量级Gitea替代GitLab进行版本控制(二)

version: 3.9 # 创建自定义网络 networks:gitea:name: giteadriver: bridgeservices:## 数据库服务db:image: postgres:latestcontainer_name: gitea_dbrestart: alwaysnetworks:- gitea # 加入到gitea网络ports:- 3003:5432environment:- POSTGRES_USERgitea # PGSQL默认用户-…

ubuntu系统下opencv的编译安装

ubuntu系统下opencv的编译安装 参考https://blog.csdn.net/KIK9973/article/details/118830187 1 安装准备 1.1安装依赖环境(Ubuntu18.04) 下载opencv的依赖,其中第三行的依赖是可选的,前两行的依赖则是必要的。 sudo apt-get install build-essent…

力扣打卡第一天

101. 对称二叉树 C: class Solution { public:bool isSymmetric(TreeNode* root) {return check(root->left,root->right);}bool check(TreeNode *p,TreeNode *q){ /**定义check方法用来检查两棵树是否是镜像的*/if (!p && !q) return true; /* 如…

鸿蒙开发语言_ArkTS开发语言体验_TypeScript语言环境搭建_TS声明和数据类型---HarmonyOS4.0+鸿蒙NEXT工作笔记003

可以看到我们新建的这个项目,有个 @State message: String =Hello ArkTS 这个就是定义了一个变量,可以看到 message是变量名,String是变量类型. 然后我们可以看看它的结构可以看到 build() 下面有个Row,然后再下面有个Column方法,然后,里面就是具体的内容了,首先就是显示了一…

python模拟股票交易

模拟股票交易是一个相对复杂的任务,涉及许多因素,如市场数据获取、交易策略、风险管理等。在Python中,你可以使用多种库和工具来模拟股票交易。以下是一个简单的示例,展示如何使用Python来模拟基本的股票交易。 1. 准备环境 首先,你需要安装一些必要的Python库。你可以使…

Python数据结构【四】排序(二)难度:困难

文章目录 前言一、书接上回二、快速排序(Quick Sort)2.1 快速排序思想2.2 快速排序代码实现2.3 快速排序复杂度分析 三、堆排序(Heap Sort)3.1 堆排序思想3.2 堆排序代码实现3.3 堆排序复杂度分析 结语 前言 可私聊进一千多人Pyth…

文件名批量改名,高效将文件名里的符号进行替换删除掉,实现文件名的高效管理

在信息爆炸的时代,我们每天都在与大量的文件打交道。从工作文档到个人照片,从视频剪辑到音频录音,每个文件背后都承载着我们的辛勤付出和美好回忆。然而,随着文件数量的不断增加,如何高效管理这些文件成为了一个亟待解…

MongoDB安装及集成

MongoDB安装及集成 前言 MongoDB是一个开源的、面向文档的 NoSQL 数据库,它采用了 JSON 风格的文档来存储数据,而不是传统的表格形式。MongoDB在数据存储方面具有灵活性和可扩展性,使得它成为了当今流行的数据库之一。 MongoDB的主要特点和…

SQL语言初步认识

1. SQL简介 2. 基本的数据定义 2.1 创建基本表 CREATE TABLE <表名> <列名><数据类型>[<默认值>|<标识列设置>][<该列的完整性约束>] 完整性约束&#xff1a; ①NOT NULL &#xff1a;该列值不能为空 ②NULL &#xff1a;该列值可以为…

关于ERA5气压和温度垂直补偿公式的对比情况

1. 气压和温度垂直补偿对比 「谨代表给个人观点&#xff0c;杠精请自测&#xff0c;对对对&#xff0c;好好好&#xff0c;你说啥都对」。 使用2020-2022陆态网GNSS与探空站并址的48个站点实验&#xff0c;以探空站为真值&#xff0c;验证ERA5精度。怎么确定并址请看前面文章…

C++感受6-Hello World 交互版

变量、常量输入、输出、流getline() 函数读入整行输入Hello() 函数复习新定义函数 Input() 实现友好的人机交互还有 “痘痘” 为什么挤不到的分析…… 1. DRY 原则简介 上一节课&#xff0c;我们写了两版“问候”程序。第一版的最大问题是重复的内容比较多&#xff0c;每一次问…

webAssembly学习及使用rust

学习理解 webAssembly 概念知识&#xff0c;使用 API 进行 web 前端开发。 概念 是一种运行在现代网络浏览器中的新型代码&#xff0c;并且提供新的性能特性和效果。它有一种紧凑的二进制格式&#xff0c;使其能够以接近原生性能的速度运行。C/C、 C#、Rust等语言可以编译为 …

LeetCode题练习与总结:简化路径--71

一、题目描述 给你一个字符串 path &#xff0c;表示指向某一文件或目录的 Unix 风格 绝对路径 &#xff08;以 / 开头&#xff09;&#xff0c;请你将其转化为更加简洁的规范路径。 在 Unix 风格的文件系统中&#xff0c;一个点&#xff08;.&#xff09;表示当前目录本身&a…

RIP小实验配置及缺省路由下发

配置如下&#xff1a; IP配置&#xff1a; IP配置完先查看RIP协议学习到的路由表&#xff0c;没有内容则代表没有开启RIP 启用RIP&#xff1a;这里的rip后跟的ID只具有本地意义&#xff0c;可以在1-65535之间随便取&#xff0c;不同路由器之间都可以取用不同的&#xff0c;为了…

上网行为管理系统功能介绍_上网行为管理实现的功能

上网行为管理系统是一种集成了网络监控、行为分析、策略管理和安全控制等功能的综合性软件解决方案。 它通过对企业内部网络的全面监控和深度分析&#xff0c;帮助管理者了解员工的网络使用习惯、识别潜在风险、优化网络资源配置&#xff0c;并最终实现网络安全和效率的双重提…

hyperf统一请求响应

2024年4月18日08:48:45 以下是两个方案&#xff1a; 1&#xff0c;使用注解&#xff0c;直接返回 <?phpnamespace App\Utils;use App\Utils\GlobalCode; use App\Utils\GlobalMsg; use Hyperf\Contract\ContainerInterface; use Hyperf\Di\Annotation\Inject; use Hyper…