HarmonyOS 鸿蒙Next【端云一体化众测】“码”上有礼!《Hi节拍器》鸿蒙原生app开发分享

HarmonyOS 鸿蒙Next【端云一体化众测】“码”上有礼!《Hi节拍器》鸿蒙原生app开发分享

  1. 引言

美国著名女钢琴家露丝·史兰倩丝卡在她的《指尖下的音乐》一书中提到:“节拍器是我每日练习时必定使用的工具,即使是我在旅行演奏的时候,也一定带着它。练习中使用它,可以使我的双手保持安定的训练,在键盘上有绝对的控制能力,不因钢琴的变动,而有失常的表现。”

由此可见,不管是小白菜鸟,还是成名音乐家,节拍器都是不可忽视的音乐工具。特别是初学者,练习音乐时,更是离不开节拍器,需要借助节拍器配方节奏感和速度感。

节拍器对于音乐人来说如此重要,鸿蒙生态里应该拥有一款优秀的节拍器应用。

因此,我们开发了鸿蒙生态的第一款节拍器应用《Hi节拍器》,目前已经在华为应用商店上线。

《Hi节拍器》app的部分UI界面效果如下:

《Hi节拍器》app的功能是挺丰富的,包含基本的节拍,还可以进一步设置细分节拍,适用于钢琴练习、吉他练习、尤克里里练习、架子鼓练习和古筝练习等音乐场景。

  1. 应用端设计

2.1拟物UI的设计与开发

节拍器的历史非常悠久,第一台节拍器是巴黎人E.卢列在1969年创制的,之后,人们使用最为普遍的是1816年由奥地利人J.N.梅尔策尔发明的外形呈金字塔形的节拍器。而在当今社会,电子节拍的使用也分成普遍。

节拍器app是仿真了物理世界的实物,在人们的心智认知里面,已经有了一些先入为主的主观印象。

所以,为了让用户有熟悉的感觉,《Hi节拍器》采用轻拟物的设计。

2.1.1点击按钮的设计

为了简化设计,本次开发中,点击按钮分成两种状态,一种是常态normal,一种是点击的状态pressed,两种状态对应不同界面效果,从实现的原理上来说,按钮在normal就显示normal图片,在pressed状态就显示相应的图片。主界面包含三种尺寸的点击按钮,对应的图片素材如下。

2.1.2旋转按钮的设计

旋转按钮效果的本设计采用了图片叠加和旋转的方式实现。一个旋转按钮,如下所示,可以拆解为5个图层组成,从左到右,左边的图层在最底下,依次往上叠加。

2.2乐理的设计与开发

《Hi节拍器》由专业的音乐教师作为顾问进行指导,开发小组严格遵循乐理进行设计和开发,这是专业的基本保证。

2.2.1基本乐理知识的介绍

具体的乐理知识需要读者自行脑补了,本小节仅介绍本文提到的几个概念。

(1)节拍

节拍,乐曲中表示固定单位时值和强弱规律的组织形式。例如,2/4表示以4分音符为1拍 ,每小节有 2 拍,再如,3/8表示以8分音符为一拍,每小节有3拍。

(2)节奏型

简单来说,节奏型,是指常见单位拍子内的节奏组合。更简单来说,就是打拍子的时长和间隔,以下就是常见的节奏型。

(3)BPM

BPM是BESAT PER MINUTE,的缩写,意思是每一分钟的节拍数量。BPM的数值越大,代表歌曲速度越快,其计算公式为: 60/BPM=两拍间隔(秒) 例如,一首歌曲的BPM为120,则代表每分钟120拍(每0.5秒一拍),以此类推。

(4)常见的速度术语

音乐的速度常用文字来标记出来,可以是中文、也可以是外文,还可以用比较准确的速度标记来表示。速度术语包括基本速度和变化速度两种。以下是常见的速度术语。

2.2.2细分节拍的设计

最简单的节拍器,就是“嘀”一声,过一定的时间间隔,再按照规律“嗒”、“嗒”几声。这个基本功能的程序,几分钟就可以写完了,这样的节拍器,网上一搜就一大推了。

但是,如果从以下几方面考虑,就可能要认真并仔细设计一下程序了:

(1)细分节拍的需求,用户在实际使用时,需要联系不同的节奏,也就是前面提到的节奏型,不同的节奏型,打拍子的节奏不一样,时间间隙和时长都不一样;

(2)组合节拍的需求,用户需要将不同的节奏型组合在一块,已达到更好的训练效果;

(3)自动节拍调节的需求,程序可以依据用户的设定,随时时间的推移,自定调节节拍的速度和节奏型;

(4)如果BPM的数值较大时,再加上三连音或者4个16分音符等情况,对播放速度和时间间隔的要求会比较高;

(5)鸿蒙开放的API9,目前使用AVPlayer来播放音频是比较简单的,但是,时间的精度不好控制,没有混音播放等,再如,关于定时的精确控制,貌似暂时只能找到Timer定时器。进一步,可以考虑采用AudioRenderer或者OpenSL ES进行尝试。欢迎看官一起讨论。

  1. 云端开发

《Hi节拍器》的服务端使用了华为的Serverless,保存用户的账号信息、音乐练习记录、个人设置参数等数据,用到了云数据库、云函数、云存储、api网关等服务。所以,接下来介绍云端的开发情况,以用户账户信息保存为例子,介绍云端开发的过程。

3.1使用云数据库

(1)定义数据模型

首先,需要依据业务的需求,定义好数据模型,例如:如要将用户的账号等信息保持到云数据库,就在云数据库管理后台,定义了一个User模型。

(2)设置数据存储区

3.2开发云函数

云函数最近做了较大的升级更新,如果是新开发云函数,就参考官方新版开发文档了。

3.2.1云函数访问云数据库

云数据库可以在app端直接进访问,也可以在云函数中访问,由于本次开发出于业务的考虑,在云函数中访问数据库,只需要按照以下的步骤进行操作就可以了。

3.2.2在app中调用云函数

App调用云函数,将用户信息保存到云数据库。所以,接下来介绍app如何访问云函数。

3.3使用云存储

  1. 关于app上架

4.1关于上架证书的设置

4.2关于国家的政策

  1. 总结

更多关于HarmonyOS 鸿蒙Next【端云一体化众测】“码”上有礼!《Hi节拍器》鸿蒙原生app开发分享的实战教程也可以访问 https://www.itying.com/category-93-b0.html

5 回复
应用市场找不到,

更多关于HarmonyOS 鸿蒙Next【端云一体化众测】“码”上有礼!《Hi节拍器》鸿蒙原生app开发分享的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


谢谢关注,最新的版本是上个月升级的,要运行在鸿蒙NEXT上,要有鸿蒙NEXT OS才行在引用市场看到。

不是鸿蒙NEXT OS的手机,估计是暂时看不到。

编译是可以兼HarmonyOS?

  • 项目名称:未命名项目
  • 创建时间:2023/03/01
  • 最后更新时间:2023/03/01
  • 作者:张三
  • 描述:这是一个关于HarmonyOS编译的示例项目。

HarmonyOS鸿蒙Next的端云一体化众测活动中的《Hi节拍器》鸿蒙原生app开发分享,主要展示了基于鸿蒙系统的应用开发流程和技术特点。鸿蒙系统强调分布式能力、一次开发多端部署、以及端云协同。《Hi节拍器》作为一款鸿蒙原生应用,充分利用了这些特性,实现了在不同设备间的无缝体验和高效性能。

在开发过程中,使用了鸿蒙的DevEco Studio开发工具,该工具提供了丰富的模板和组件,支持快速构建应用。鸿蒙系统的ArkUI框架用于实现应用的用户界面,其声明式UI和状态管理机制简化了开发流程。此外,鸿蒙的分布式数据管理和任务调度能力,使得《Hi节拍器》能够在多设备间同步数据和任务,提升用户体验。

端云一体化是鸿蒙Next的重要特性,通过云端服务和设备端的协同,实现了数据的高效处理和应用的智能扩展。《Hi节拍器》利用了鸿蒙的云服务能力,实现了节拍数据的云端存储和分析,用户可以在不同设备上访问和管理自己的数据。

总的来说,《Hi节拍器》的开发体现了鸿蒙系统在应用开发中的技术优势,展示了端云一体化在实际应用中的潜力。通过这次众测活动,开发者可以更好地理解和应用鸿蒙系统的各项特性,推动鸿蒙原生应用生态的发展。

回到顶部