基于Android音乐播放器的设计与实现之欧阳结创编Word文档下载推荐.docx
《基于Android音乐播放器的设计与实现之欧阳结创编Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《基于Android音乐播放器的设计与实现之欧阳结创编Word文档下载推荐.docx(15页珍藏版)》请在冰豆网上搜索。
软件结构;
音乐播放;
移动终端;
Android
DESIGNOFANDROIDMUSICPLAYERBASEDON
Abstract
UnderthecorrectleadershipofGoolge,theAndroidopensourcesystemwiththesuddennessofathunderbolt,dominatedthemobileendsystem,becomehavethelargestnumberofusersofthesystem,thesoftwarebeyondcountmusicplayerclass,whydoIhavetowriteaplayerout?
Becausetheexistingmusicplayerfunctionissomemore,moreisnotbad,butIwantacleanandpuremusicplayer,onlyforthemusicplayer,anumberofthefunctionyouwantplayers,suchas"
song"
afamiliarcodeplayer,even,aonecancustomizethefunctionstructureofthemusicplayer.
Imkindofmobileterminalsoftwaredevelopment,theauthorofthispaper,usingmultitaskingmobileterminalinterfacedesign,putforwardasetofgeneralsoftwarearchitecture,theprogramismainlydividedintotwoparts:
functionlayerandsupportinglayer.Functionmainlyaimedattheapplicationbusinesslogiclayer,fromtheaspectsofinterface,humancomputerinteractionandcontrol,implementavarietyoffunctionalrequirements,andthesupportlayerisonthebasisofhardware,operatingsystems,IOinterfaceprovidedbytheoperatingsystem,datastoragemechanism,memorymanagementmechanismtotargetedabstractencapsulation,unifiedinterfacestandardsandspecifications,tobuildasuitableformultipleplatformsandmultiplelanguageapplicationdevelopmentapplicationdevelopmentframework.CombinedwiththeIOSandAndroidoperatingsystemitselfcharacteristicsofthesystemstructureisgivenintwohugeplatformspecificapplicationframework.
Keywords:
softwarearchitecture;
MusicPlayer;
Mobileterminal;
TheAndroid
前言
音乐的世界,给世间万事万物带进了美好的时空。
任你的思绪遐想,使你整个人陶醉在天上人间。
每每听着音乐,就会忘记所有的懊恼,所有的不快,甚至忘记了时间,忘记了一切。
心和音乐融为一体,把你变得年轻而美丽。
所以,它不但仅使自己精神世界永远处在一个五彩斑斓的境界里,而更多的是给整个世界带来了快乐与幸福。
音乐的魅力在于它没有国别和语言的局限,任何一个人,听到音乐会随着音乐一起快乐,一起哀痛,好像那时的场景历历在目。
音乐,有着无穷魅力!
音乐是世界上最美的语言!
本文主要是设计与实现一个用于基于Android的音乐播放器的工具,其主要特点就是简双便利,它主要是用最简单的方法去播放音乐,用最小的内存,最少的资源去播放音乐。
这款音乐播放器最年夜的特色单屏设计理念,你的所有操纵都在一个屏幕上。
音乐列表,播放按钮,操纵控制等,在整个界面上一览无余。
这款音乐播放器,你会发明即使只有一屏,操纵起来仍没有任何问题。
简单,实用,是这款基于Android的音乐播放器最年夜的,也是做好的特点。
我希望可以有更多的人喜欢我做的这款音乐播放器。
1.项目来源及开发目的和意义
1.1项目来源
如今Android上一月播放器有很多,可是似乎没有我想要的,我想要的是一款足够简单的音乐播放器,根据同学们的意见与建议,然后设计并实现,进一步的根据调查与市场阐发实现我们完成项目。
1.2项目开发目的和意义
音乐作为艺术必不成少的一部分,是我们生活和心情的调节剂,也是我们心灵的彼岸,精神的家园。
庄重肃穆的音乐使人沉稳如山,轻快活泼的音乐使人飘忽如云,舒缓悠扬的音乐使人心静如水。
它是你急噪不安时的一针镇定剂,是你忧伤感怀时的一抹笑容,
此次设计从实际工程应用的角度出发,以计算机硬件解码为指导,结合以后网络中的一些经常使用技术和,编程实现基于Android的音乐播下班具,完成我们实现移动终真个设计与实现。
本项目是根据作为自己专科的结业设计课题提出来的,它规模适中,适合于个人开发,能够熬炼学习新知识能力,进一步加深我们对学过的知识进行回顾,并进一步熬炼编程能力,熬炼软件工程思维方法。
目前,计算机的成长离不开网络这一标的目的,网络将年夜年夜扩展计算机的功能,研究计算机的网络方面的技术以及应用,挖掘计算机的额网络潜能,将能够年夜年夜提高自己对计算机的自己的认识,同时也能加深对计算机网络的认识,开阔我们对计算机网络的了解。
网络的一年夜应用就是用于用户精神享受的音乐工具,通过对音乐工具的开发,能了解计算机如何通过硬件编码解码以及在此相互通信的基础上实现的应用法度级的协议。
本项目在整个开发实现上都基本采取Android技术,在解码编码上使用它是因为它具有如下优点:
a.减少不需要的数据传输、时间及降低网络上数据流量的节省,并减少了数据流。
b.平衡了前、后真个负载,原本数据年夜多由后端担任处理,借由AnAroid让客户端分担些工作,减低了后真个负载。
而在前台界面上,android同样强年夜诱人,这主要运用到MainUi技术,它是一种主要用于创建前端用户界面,是一个与后台技术无关的前端android框架,它具有如下优点:
a.无需网络、只要在一定的规模即可传输。
b.节省流量,无需网络。
c.可编辑grid,添加新行,删除一或多行,提示脏数据,推拽修改grid年夜小,grid之间拖拽一或多行,甚至可以在tree和grid之间进行拖拽。
2.音乐播放器开发及应用现状阐发
2.1操纵和全面是关键
和过去MP3播放器只能播放低码率MP3、按键也只有几个不合,音乐播放器随着科技的进步,无论是对音频格式的兼容性还是操控方面都有了很年夜的进化。
很多人购买音乐播放器的肘候,城市考虑到上手的难易度以及对音频格式的支持。
现在很多播放器都采取了触控屏,可是触控不见得就代表好用,一些播放器即使只使用按键也会有不错的上手效果,关键还是得看选歌和设置是不是便利。
至于音乐格式,能支持无损压缩的音乐文件是最好的,特别是可以支持WAV、FLAC、ALAC和APE,最好还能支持CUE管理整个音轨。
目前要找到一个功能很是全面的音乐播放器其实不容易,特别是支持CUE管理音轨的,苹果产品虽然操控便利,可是不支持无损音频,所以其实不推荐。
这里年夜家无妨考虑一些国内的播放器,一些国内专业的音频公司,往往会推出一些不错的音乐播放器,比方飞傲的产品,无论是操控还是格式支持,放眼整个业界都属~流;
另外像索尼、HiFiMan这些著名厂商的播放器,在功能方面比较全面,操控也很便利。
2.2android音乐播下班具音质阐发
音质我们谈得太多,但不成否定的是,音质自己就是一种带有主观性质的工具。
可问题在于音质对音乐播放器又是很是重要的一环。
在这里我们也只能通过两种办法去判别一个播放器的音质。
首先是客观判断,这点可以通过播放器自己的参数和硬件来阐发,比方一个播放器使用的主芯片是什么,使用的DAC、放年夜器的型号,了解了播放器的硬件,我们才可以知道它的最高音质有没有包管(固然具体还要看工程师的调音)。
另外,如果有条件的话,年夜家可以用RMAA来测试一款音频设备的具体性能参数,包含频响、静态、噪声、失真以及别离度等等,这些都是有标准的。
如果实在没条件,那就多看看媒体的客观评测吧!
除客观判断之外,剩下的就只有主观听音了。
对追求音质的人而言,虽然不成能个个都是金耳朵,但即使是木耳朵,也应该听出一些音质区别较年夜播放器之间的差别。
这里推荐采取同一款耳机,在不合播放器上进行试听,然后选择更让你觉得舒服的那款播放器音乐播放器其实不见得每款都很贵,可是音质较好的播放器的价格绝对不会低,基本上从数千元到数万元都有。
固然到了这个级别,真要在数千和数万元之间听出多年夜的差别,非金耳朵不克不及也,对类似笔者这样又要追求音质,却又是木耳朵的用户,除努力看参数和自己拼命试听外,无妨考虑一些专业音频厂商的产品,这类厂商做出来的工具一般都是有音质包管的。
比方HiFiMan、乐之邦、Aune、乐图等,至于价格方面就看自己身上有几多银子了。
需要提醒的是,追求音质,往往在操控和格式方面就不要要求太多,比方乐之邦06MX这种操控反人类但音质又很好的产品,又比方Aune那种音质超卓但只支持WMV格式的播放器,要听好声音,就专注到声音里面去,其他尽量别苛求。
3.需求阐发及总体设计计划
3.1主要开发内容
本项目的主要开发内容是设计并实现基于android的音乐工具(如果提供版本升级,会考虑加入网上音乐和歌词显示的功能),此次设计为基于android的音乐工具,该计划利用现有成熟的手机硬件解码技术来实现音乐工具的开发。
本项目主要分为三年夜模块:
页面设计模块,后台模块和文件夹数据库拜访模块。
3.2需求阐发
一个完美得音乐播下班具,它将为用户提供友好的界面,丰富的功能,便利用户的使用,给用户提供更加便利的需求,便于使用便于扩展,下面就对该项目的需求进行详细描述。
3.2.1界面设计模块功能需求
1)暂停播放功能
这是页面的主要界面区域,为一个编辑框形式的窗口界面,其中用于显示暂停播放和上一曲下一曲的信息,并支持修改音乐文件夹元素,该界面中可显示音乐列表,同时支持修改里面信息如删除添加等。
图3.1歌曲列表
2)音乐文件夹选择功能
音乐文件夹选择功能是用来更改音乐根目录的功能,可以用来选择不合文件夹下的音乐文件,因为技术有限,不克不及进行智能的筛选,所以只能用这种笨办法先取代着,可是以后一定会用智能的音乐筛选系统。
图3.2文件夹选择
3)音乐列表
以列表方法显示该音乐播放器现在可以播放的音乐,列表最少可以显示上千首歌,想让那首歌播放可以点击音乐播放列内外的歌曲,可是一定要点到歌曲名字上面,因为触摸监控规模只监控音乐播放列内外的歌曲名字自己,其他的处所还没能监控到,这一点儿会在以后的升级版本里进行升级。
4)播放上一曲
上一曲就是点击按钮之后播放在音乐播放列表中位于以后正在播放歌曲的上一首歌曲
图3.3上一曲代码
其中的实现就像图3.3中所示,current代表以后歌曲,if…else…语句用于判断是否超出音乐播放列表规模。
player.reset()重置播放器后,用play()办法进行播放。
5)播放下一曲
下一曲就是点击按钮之后播放在音乐播放列表中位于以后正在播放歌曲的下一首歌曲,代码实现跟上一曲相差不年夜,只需要修改current为current++即可。
6)暂停与播放
暂停按钮和播放按钮合并在一起,歌曲在播放的状态时就显示暂停,歌曲在暂停时或者在未播放时就显示播放。
这个音乐播放器没有提供停止按钮,因为觉得没需要,暂停就够用了。
7)进度条实时更新
歌曲在播放的时候会用ProgressBar这个系统组件显示歌曲播放的,Android的UI是单线程的,此ProgressBar时的就是这个原理更新的,为了避免拖住GUI,一些费时的对象应该交给自力的线程去执行。
如果幕后线程来执行UI对象,就会发犯毛病讯息。
8)歌词显示功能(升级功能)
由于歌词表达了歌曲的宗旨和灵魂,论述了一首歌所要表达的感情和主旨,所以即使年代久远,有的歌词也不容易忘记。
歌词的好坏有时候在很年夜水平决定了一首歌的好坏,因此很多著名的歌手也会请著名的填词人来创作,以后歌词创作比较优秀的人有林夕、方文山、高晓松、李焯雄、黄沾、陈信宏、黄伟文、万宏、林若宁、黄俊郎、许嵩等。
随着人对歌词的重视,歌词这一文体将会被越来越多的人所借用。
随着越来越多高素质文人选择歌词创作,流行歌词的艺术水准将年夜年夜提高。
这些都是我们下一步升级要考虑到的。
9)智能文件检索(升级功能)
智能检索以文献和检索词的相关度为基础,综合考查文献的重要性等指标,对检索结果进行排序,以提供更高的检索效率。
智能检索的结果排序同时考虑相关性和重要性,相关性采取各字段加权混合索引,相关性阐发更准确,重要性指通过对文献来源权威性阐发和引用关系阐发等实现对文献质量的评价,这样的结果排序更加准确,更能将与用户愿望最相关的文献排到最前面,提高检索效率。
如果以智能文件检索为帮助,本软件就会更好用,这些都是我们下一步升级要考虑到的,只是现在技术能力有限。
10)智能随机播放功能(升级功能)
在播放的时候记录歌曲播放次数,频率。
根据所记录的工具进行有选择性的随机播放,更加人性化。
使用者可以用本音乐播放器体验一种想听什么歌,不必操纵,播放器智能选择的良好体验。
新歌优先试听。
11)硬件解码(升级功能)
音乐播放器就是音频解码器的可视化操纵界面,其实质是针对各种音频编码格式的解码器。
例如ape格式调用的是Monkey'
sAudio解码器,flac格式调用的是flac解码器,mp3调用的是lame解码器。
年夜部分音乐播放器都支持多种音乐格式的文件,这是因为这些播放器将不合的音频解码器打包起来,并制作统一的播放界面,从而让使用者能够便利地播放和聆听各种音乐。
正因为音乐播放器仅仅是将音频解码器打包,而同一种音频的解码方法又是固定的,因此理论上所有播放器的音质应当是完全相同的,其实不存在音质最好的音乐播放器。
有些音乐播放器会在解码器的基础上添加DSP插件,对原始的音乐进行转换和扭曲,以迎合人们的喜好(如加强高音或过滤细节),美其名曰优化音质以获得天籁之音,实质却是破坏原本音乐,虽然能够使部分音乐更好听,却也招致另一些音乐音质年夜打折扣。
音乐播放器的人性化界面和扩展性才是各种音乐播放器的特色所在。
[3]年夜部分商业版播放软件往往将界面打造得很是华丽,操纵也十分简便,但却缺乏扩展性,支持格式较少。
开源播放软件一般能够较好地进行扩展,支持较多的音乐格式,但往往界面朴素,难以吸引用户。
12)歌曲检索功能(升级功能)
基于内容的音频检索,是继基于内容的图像检索之后成长起来的一个新兴研究标的目的,是指通过音频特征阐发,对不合音频数据赋以不合的语义,使具有相同语义的音频在听觉上坚持相似,其中基于内容的音乐检索是具有较高实用价值的一个部分。
在基于内容的音频检索中,对音频的分类检索技术(如将音频文件分为“音乐”、“演讲”、“噪音”等)获得了较快的成长。
而由于音乐自身的感知特征问题,基于内容的音乐检索技术则成长缓慢。
音乐与人的听觉感知紧密相关,它更多的转达了一种感情,一种很难量化的情绪,音乐的这种特性决定了在音频的分类检索技术中所用到的物理特征对音乐阐发其实不适用。
基于内容的音乐检索是根据音乐的内容特征来进行检索,也就是根据音乐的旋律、节奏等音乐特征进行检索。
基于内容的音乐检索在音乐数据库管理、Internet音乐检索以及生活娱乐方面都具有很是重要的意义。
现在每年只是在中国就会有上千张的新音乐专辑呈现,对音乐数据库的管理简单的只是依据手工标注分类已远远不敷,这就需要对音乐的基于音乐内容的分类管理。
而作曲家和音乐家则需要通过音乐的旋律等特征来进行音乐查找和比对,以解决音乐的著作权和版权问题。
同时,面对年夜量涌现的新音乐和海量的经典音乐,对喜爱音乐的人们来说,通过他们所熟悉的音乐旋律特征来查找音乐是一种更受欢迎的办法。
所以,对基于内容的音乐检索基于内容的音乐检索系统研究的研究具有着广泛的实用价值和理论研究价值。
3.2.2后台通讯模块功能需求
由于是音乐播放,所以用android实现,将客户端发送的请求及时响应并前往数据。
无线通信模块广泛地运用在车辆监控、遥控、遥测、小型无线网络、无线抄表、门禁系统DATA6106无线通信模块、小区传呼、工业数据收集系统、无线标签、身份识别、非接触RF智能卡、小型无线数据终端、平安防火系统、无线遥控系统、生物信号收集、水文气象监控、机器人控制、无线232数据通信、无线485/422数据通信、数字音频、数字图像传输等领域中。
后台通讯模块对音乐播放的最用就是可以在联网的情况下,使后台办事器能够及时掌握客户真个实时信息,从而进行只能播放用户喜欢的音乐的功能。
3.2.3数据库拜访模块功能需求
收索的查询请求及时响应,并将结果前往。
VisualC++提供了对DAO的封装,MFCDAO类封装了DAO(数据库拜访对象)的年夜部分功能,从面VisualC++法度就可以使用VisualC++提供的MFCDAO类便利的拜访MicrosoftJet数据库,编制简洁、有VisaulC++特色的数据库应用法度。
数据库拜访对象(DAO)提供了一种通过法度代码创建和把持数据库的机制。
多个DAO对象构成一个体系结构,在这个结构里,各个DAO对象协同工作。
DAO支持以下四个数据库选项:
掀开拜访数据库(MDB文件)——MDB文件是一个自包含的数据库,它包含查询界说、平安信?
?
须指定MDB文件的路径名。
直接掀开ODBC数据源——这里有一个很重要的限制。
不克不及找开以Jet引擎作为驱动法度的ODBC数据源;
只可以使用具有自己的ODBC驱动法度DLL的数据源。
用Jet引擎找开ISAM型(索引顺序拜访办法)数据源(包含dBase,FoxPro,Paradox,Btrieve,Excel或文本文件)——即使已经设置了ODBC数据源,要用Jet引擎来拜访这些文件类型中的一种,也必须以ISAM型数据源的方法来找开文件,而不是以ODBC数据源的方法。
给ACCESS数据库附加外部表——这实际上是用DAO拜访ODBC数据源的首选办法。
首先使用ACCESS把ODBC表添加到一个MDB文件上,然后依照第一选项中介绍的办法用DAO找开这个MDB文件就可以了。
用户也可以用ACCESS把IASM文件附加到一个MDB文件上。
3.3总体设计计划
本项目深入贯彻模块划分的设计思想,将功能和实现清晰地展开,下面就将从模块的角度介绍各个部分的结构设计计划。
3.3.1页面设计模块结构
图3.4页面结构与功能图
整个页面在总体上分为上面、中间、底部三个部分,其中上面部分包含一个列歌曲名字,播放进度条和时间。
通过这些可以检查歌曲的播放状态,中间部分是一这种音乐播放控制按钮,这是音乐播放器的总体最重要部分,歌曲的播放状态由这一部分全权控制;
底部是音乐播放列表显示区域,可以通过这个显示区域检查要进行播放的歌曲,上下翻动进行检查。
也可以通过点击歌曲名称来进行播放。
3.3.2后台通讯模块结构
图3.5后台通讯图
如图3.5所示,用户发送XMLHttpRequest请求,通过该对象与办事器打交道,然后办事器将操纵数据库获得的信息前往,并通过JavaScript对客户端进行响应。
本项目的年夜大都即时通讯都是通过这种方法实现的。
3.3.3数据库拜访模块结构
图3.6数据库拜访图
如图3.6所示,web办事器将拜访参数传递到数据库的存储过程中,存储过程执行数据拜访,并将查询的结果前往到办事器。
本系统基本上所有的拜访都是通过这种方法完成的。
4.开发环境和开发工具
4.1开发语言
android的应用也很是广泛,基于android语言的jsp技术在网站开发中具有跨平台、可伸缩性强等众多优点,且网上的学习资料很多,所以选择android语言开发。
4.2开发工具
(1)Eclipse,Androidsdk,Javasdk虚拟机。
(2)硬件笔记本电脑一台,手机两部,手机数据线一条。
4.3开发环境
表4.1开发环境表
名称
描述
操纵系统
Windows7旗舰版
支持软件
Eclipse,Androidsdk,Javasdk虚拟机。
网络环境
以太网10/100/1000M
硬件环境
CPU:
酷睿2双核T57502.00GHz
内存:
2G
显存:
128M
硬盘:
250G以上
手机两部
数据线一条
5.项目进度安插、预期达到的目标
5.1进度安插
项目进度及结业设计(论文)工作安插见表51。
表5.1项目进度及结业设计(论文)工作计划表
起始时间
完成时间
计划工作内容
备注
.11.20
.12.20
项目需求与可行性阐发
已完成
.12.21
.1.20
技术参考与功能设计
.1.21
.2.20
概要设计、详细设计
.2.21
.3.20
编码实现、测试与安排