APP下载

基于Android的K歌系统的设计与实现

2019-04-17迟俣鑫

科学与财富 2019年17期

摘 要:本文对Android中K歌系统的设计进行分析,通过底层服务模块、录歌模块和动画组件三方面对辅助Android在K歌系统中的实现进行深入探究。希望能为有关人员提供帮助。

关键词:UI框架;服务模块;动画组件

引言:随着时代的进步,移动终端市场需求呈上升趋势,人们对移动终端的娱乐要求越来越高,在此大环境下,Android的K歌系统的设计与实现迫在眉睫。

1.Android中K歌系统的设计

1.UI框架设计

因为应用的需求量大,UI数量多,在手机交互页面会有多次的跳转,所以造成页面变化数量增多,此时就需要能支撑整个系统的UI框架。安卓系统主要设计单一的Activity和多种Fragment的模式,其关键性在于只能有一个最为主要的功能模块来充当页面容器的Activity,在此基础上,Activity只能被当做容器,其内在不存在实际的UI元素和动作。但是在此Activity中可以支撑两个及两个以上的页面,每个页面中都占据着主Fragment。然而单一的页面可以对需要显示频率高的和内在结构性强的页面模块进行区分,将子Fragment增添到根Fragment之上,并且需要依据实际中对子Fragment进行显示或者隐藏。这样的安排共有两点好处,第一点,能将UI充分的表现出来,因为Fragment能根据实际的需要随意添加隐藏和删除功能,促使UI的等次划分更加明确,能够灵活的实现。第二点,页面模块借助Fragment来实现,并且能在任意页面上重复使用,将系统进行精简。

1.2底层服务设计

底层服务设计共有三个方面,分别在音乐播放器、录音和合成。录音器中以录音功能和进度控制功能为主,录音模块有开始、结束、暂停三种操作借口供外界使用,实现外界对其进行操作。录音器需要用户能够根据所需随意的调整歌曲进度,所以录音器需要添加进度控制作用,一旦录歌时的进度被更改时,应第一时间对录音的新合成地点进行记录。播放器则为用户提供了播放功能,首先最原始的本地播放器为Android系统中的MediaPlayer,虽然可以作为播放媒介,但是无法对原有的文件进行存储,因此需要借助额外的播放媒介。最后,在录音重播功能中,主要在录音素材进行存储之后,在音频的合成前进行应用,但是此时声音和伴奏仍然是两个不同的轨道,运用录音重播功能可将两个文件合二为一,为用户提供预览。合成器是将录音以及伴奏合成一个单独的音频,对其进行编号,最后得到一个完整的音频文件。

2.辅助Android在K歌系统中的实现

2.1底层服务模块

底层模块主要分为三个方面,分别为录音、播放和编码合成。第一,录音功能需要实现对录音器进行初始化,但是一旦发生初始化不成功的现象就会直接释放素材,并回到监听器中对用户进行告知。当初始化成功时也会第一时间通知用户,并准备录音。在录音时,可以对录音状态进行主观调整,任意操作暂停、播放等功能,录音器会及时储存缓冲中的素材。第二,对于播放双音频文件和播放器的应用,由于PcmM4aPlayer会将PCM文件中的素材直接载入AudioTrack,会造成播放和实际的操作存在不契合的情况。第三,合成器的应用。因为要将最开始的录音PCM素材和伴奏音频数据进行合并,所以需原先的M4A文件转换成PCM数据,并且在展开解码之前,按照时间轴将两个文件进行对齐。

2.2动画组件

组成动画效果的每一个图层中,外部业务会将自身合成完成后交接至动画组件,动画效果由动画组件来完成,外部业务可以任意对动画进行操控。首先,设置画笔的颜色和文字属性为原始状态,然后对该线程的活跃情况进行事先了解,以预防由于外界的启动频繁而造成动画线程失误。在进入线程之后应当首要判断暂停绘制动画的必要性,暂停绘制时系统会进入一种等候状态,如果不需要的话就开始进行绘制工作,绘制过程会设计到有关的全部图层,所有的图层中所绘制的动画组件都显示在canvas上。在绘制完毕之后,系统会有20ms的间歇等候状态,此状态过后便可进行再一次的绘制,以此实现一秒中画面数量高达50帧的效果。在进入系统休眠等待之后,外界仍然可以对动画绘制进行操控,并且可以暂停动画或清空全部图层[1]。

2.3录歌模块

一开始将所需的所有文件进行下载存储之后,会直接进入到主页面,把下载的歌词文件移交至系统中的歌词组件,并将页面和服务与用户进行绑定,登录所需要的监听器,进行录音和播放。对着伴奏的播放进行录音,并对齐时间轴进行歌词的匹配,歌词将随着伴奏进行滚动。登录状态的服务器会不停的接受底层的回调,及时获得播放的时间进度和评分情况,并第一时间对数据的更新状况显示到UI页面上。在录制的过程,伴奏、歌词、录音状况和评分标准都是同步的,都是以伴奏為标准。

结论:综上所述,本文依据K歌软件系统内部的实际需求和总体设计进行分析,对系统内部的素材设计,包括底层服务、动画组件等框架设计进行详细阐述,为实际的应用提供帮助。

参考文献:

[1]陈平.UI自适应的Android软件自动化测试框架研究[J].安徽冶金科技职业学院学报,2017,27(02):43-45.

作者简介:

迟俣鑫(1996),男,籍贯:吉林省辽源市,职称和学历:学生,大学本科,研究方向或专业:计算机工程系、软件工程。