基于Android的音乐图片播放系统的设计与实现

2019-03-25 08:34张馨元
科技视界 2019年1期
关键词:音乐

张馨元

【摘 要】针对当前智能手机终端和4G网络的不断普及,本文提出了一种基于Android的音乐图片播放系统,并对系统的体系结构、关键技术进行了分析。最后,通过对系统进行实地测试,证明了该系统通过手机APP能够较好在基于Android的移动设备上进行添加图片和音乐的功能。

【关键词】Android;音乐;图片;JAVA

中图分类号: TP 393 文献标识码: A 文章编号: 2095-2457(2019)01-0217-003

现今社会生活紧张,而欣赏音乐是其中最好的舒緩压力的方式之一,随着手机市场的迅速发展,各种音频资源[1]也在网上广为流传,通过手机音乐播放器放松心情已经渐渐成为人们生活中必不可少的一部分了。不少人在购买手机的时候都会关心手机的音乐播放[2]的能力,这也足以看出目前大家对音乐播放功能的重视,所以一款性能良好的手机音乐播放器软件一定会受到欢迎。

音视频播放器[3]研究的目的就是为了满足用户的精神生活需要,而开发的一款基于Android[4]平台的便于人们使用的音、视频播放器[5],通过在移动端使用播放器[6],播放音乐或视频文件,给用户带来艺术体验,最终达到缓解用户压力的目的。但目前市面上用户使用的主流播放器还存在着一些弊端[7],例如:所需要占用的内存过大、外观花哨不实用、播放时损耗流量过多、软件捆绑过于严重[8]、操作过于繁琐不适合老年和儿童使用、音乐播放和视频播放之间的切换过于繁琐,等等。这些情况严重影响了用户的良好体验和个人权益,针对以上各种弊端,将各项性能进行优化,同时简化界面操作,设计一款基于Android手机平台的音视频播放器。利用音频和图片可以在同一个APP中播放的特点,更好地提升用户的体验。手机上装有一个灵巧的音视频播放器,用户的操作将更加便捷。

1 系统总体设计

音乐图片播放系统包括程序入口界面、主界面、添加界面、播放界面。如图1所示。

1.1 系统需求分析

音乐图片播放系统实现图片音乐的点播和图片的定制显示。可用于商场、银行、电梯等公共场所的广告及宣传板、家庭电子相框。硬件系统要求支持安卓操作系统[9]。

具有较灵活的设置功能,通过选取下载到本地的图片和音乐进行组合,完成本地配置功能。

具有开机自启动功能,无需干预即可实现显示。

1.2 数据逻辑模型

音乐图片播放系统的E-R图如图2所示。

如图所示,本系统内总共有用户、配置信息和音乐图片这三大主体。其中,用户可以配置音乐和图片、显示图片音乐信息供选择、播放指定的音乐和图片。配置信息含有音乐和图片的存储路径及辅助信息。音乐和图片是指存储在本地的音乐文件和图片文件。

音乐图片广告系统首先要解决数据存储问题,数据应以记录形式存放,记录音乐和图片的配置关系。采用SharedPreferences保存数据在music.xml中,记录和记录以%间隔。

音乐图片广告系统需要解决画面切换后,当前播放内容的传递的问题,要让播放模块知道当前需要播放的是那一条记录对应的歌曲和图片。设计中给每条记录设置了序号。本系统通过意图(intent)在activity见传递记录序号。

2 系统详细设计及方案

下面将分别实现各个模块的设计,由于涉及的模块较多,这里列出主要模块的设计实现。

2.1 程序入口模块

实现功能:显示欢迎页面,显示重要提示,停留2000ms,进入主界面。

实现过程:调转至主界面MainActivity,当主界面退回时结束,activity生命周期结束,主要技术点是:

(1)界面切换技术,启动同一应用的activity,使用显式启动方式,显式的效率高于隐式。欢迎页面切入主界面采用了显式启动。而系统启动该系统时通过隐式方式进行。

(2)运用Activity生命周期的特点,选择主界面退出后退出程序。

2.2 主界面模块MainActivity

显示音乐配置历史记录,供添加和选择播放,类MainActivity继承Activity的子类AppCompatActivity。根据Activity生命周期,activity一开始创建的时候执行onCreate(),在该方法中完成布局的设置及初始化,数据的初始化。技术要点如下:

使用RecyclerView (一个增强版的ListView)显示音乐名称,不仅可以实现和ListView同样的效果,还优化了ListView中存在的各种不足之处。

通过点击‘+,进入设置界面。

通过点击 明细条目,进入播放界面。

2.3 添加音乐及图片界面模块

实现功能:通过选择图片和音乐,提交后记录在SharedPreferences文件中。

实现过程:(1)点击选择音乐控件,添加音乐画面。使用隐式意图startActivityForResult,查找本地所有的音频文件。用Activity Action里的“ACTION_GET_CONTENT”字符串常量,选择“audio/*”类型的数据,并返回该数据的URI.,就可获得android系统中的所有audio。(2)点击选择图片控件,添加图片画面。使用隐式意图startActivityForResult,查找本地所有的图片文件。用Activity Action里的“ACTION_PICK”字符串常量,选择“image/*”类型的数据,并返回该数据的URI.,就可获得android系统中的所有image。(3)点击‘提交控件,提交处理。检查音乐和图片是否选择,如果未选择,则提示选择;如果已选择,从SharedPreferences文件music.xml读出配置串,与现有选择的配置拼装在一起,更新SharedPreferences文件,提示‘提交成功,结束本activity,finish()。

2.4 播放界面模块

实现功能:完成指定音乐和图片的显示:

1)音乐可以向前播放,向后播放,和暂停播放。

2)同时显示图片。

实现过程:(1)设置‘<点击事件侦听,一旦点击,本activity结束finish()

(2)设置‘Play_Pre向前、‘Play播放(暂停)点击事件侦听‘Play_next向后播放点击事件侦听

(3)点击事件处理:更新播放数据data、播放、同时显示图片

(4)在活动结束时停止播放音乐。

2.5 音乐播放器模块

实现功能:完成指定音乐的播放:(1)对MediaPlayer进行客户化,使其能够播放音乐。(2)计算进度条位置。

实现过程:

1)创建MediaPlayer对象

2)设置声音源

3)参数设置

4)MediaPlayer播放音频

(1)准备:同步准备prepare(),在调用prepare()方法后调用setOnPreparedListener()方法进行准备监听,在此监听中调用start()方法进行播放。

(2)暂停与停止

pause():暂停音乐播放

stop():停止音乐播放

reset():重置当前音乐

(3)进度条实时显示播放进度

首先应该在布局文件中SeekBar,在Activity中进行初始化。

使用定时器来定时更新进度。

定时器的代码应该在mMediaPlayer.setOnPreparedListener()中调用[10]。当其开始播放时开启这个定时任务,并调用seekBar.setMax(mp.getDuration());来设置进度条的最大时间,其中mp.getDuration()是获取当前播放文件的总长度。

停止播放或者结束播放时,调用mTimer.cancel();来关闭定时器。

3 系统测试

3.1 开发环境和工具

开发工具为:Eclipse Standard Luna 4.4.2

Java SDK版本:1.7.0_75

Android studio版本:2.3.1 API 28

AndroidManifest:minSdkVersion=17,targetSdkVersion=23

Project.properties:target=android-23

系统测试主要是对软件各个功能的黑盒类测试,覆盖系统所有联合的部件。系统测试是针对整app系统进行的测试,目的是验证系统是否满足了需求规格的定义,找出与需求规格不相符合或与之矛盾的地方。

系统测试的对象不仅仅包括需要测试的APP系统的软件,还要包含其所依赖的硬件、外设甚至包括某些数据、某些支持软件及其接口等。因此,必须将系统中的软件与各种依赖的资源结合起来,在系统实际运行环境下来进行测试。测试中发现的bug以及修复方法如下表所示:

所测试项目均符合预期目标,并且APP在运行过程中并未出现任何异常。添加音乐和图片界面(a)及播放界面(b)测试如图3所示。

4 结束语

音乐播放器需要一个简洁、漂亮的界面,给使用者以更好地用户体验,还要求从播放器的功能性入手,保证该音乐播放器能够在android的技术框架下,实现功能的全面性和兼容性。本系统经过了需求分析、设计以及测试,在安卓手机上实现了播放器的功能且运行流畅。经用户的体验证实,该音、视频播放器操作简单、使用方便且不占用过多的内存。音视频播放器系统实现了播放器的基本功能

【参考文献】

[1]蒋斌.某数字音乐开放平台的设计与实现[D].中国科学院大学,2015.

[2]摆云.基于Android开放平台和无线通信网络的实时音视频传输系统设计与实现[D].兰州大学,2012.

[3]李玲玲.基于Android平台在线音乐播放器的研究与实现[D].安徽理工大学,2012.

[4]周雅翠.基于Android平台的个人事务管理系统设计[J].吉林建筑大学学报,2015(6):67-68.

[5]马建设,赵雪江,苏萍,夏飞鹏.基于Android系统的视频播放器开发[J].计算机应用与软件,2013(11):69-71.

[6]陈宽宜.基于Android平台在线音乐播放器的研究与实现[D].中国科学院大学,2013.

[7]邓昌友,肖遥,马小月.基于Android智能手机数据安全的研究[J].福建电脑,2015(12):5-6.

[8]王毅.Android平台并行计算研究[J].电子制作,2015(24):26-27.

[9]吳新华,万强.基于Android平台的手机游戏开发[J].萍乡学院学报,2015(6):66-69.

[10]董涛,李隐峰,范星光.基于Android的移动校园客户端的研究与实现[J].电子科技,2014(12):4-5.

猜你喜欢
音乐
音乐
秋夜的音乐