版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Android音乐播放器撰写人:张XX2011-3-15一、问题定义本软件是为了用户智能手机Android而开发的一套智能软件,提供在线下载音乐,在线播放音乐,读取SD卡音乐文件等功能。二、可行性研究社会可行性分析:3G技术飞速发展,为满足人们对音乐的追求,音乐播放器层出不从,然而市面上大多音乐播发器软件都太难操作,或者音质不好,不能给用户以更好体验,故提出开放一套更加人性化的手机播放器。技术可行性分析:以现阶段android技术发展水平,技术人员的技术配备,以及现有资源文档的配备来说,实现本软件是可能的。经济可行性分析:有本人个人时间以及经费支持,使得开发此软件有了资金保障,可以充分利用这一
2、优势,尽快开发。其他可行性分析:三、需求分析随着3G时代的到来,手机应用越来越普遍,加之国民手机持有量更是爆炸式增长。移动音乐服务正是为这一形势而发展起来,本人提出一种多功能手机音乐播放器的应用,主要为了满足不同人群的音乐需要,并且提高优质的音乐服务,于是提出本音乐播放器的主要功能。需求功能如下:在线下载音乐功能。在线播放音乐显示声音波段表示提供t取SD卡音乐用户可以定制音乐均衡器,以满足不同音质需求音量调节提供歌词跟随音乐滚动更能提供重力感应选择上、下首歌曲功能四、概要设计(总体设计):模块简要说明在线下载音乐功能本根据用户输入音乐文件地址,自动下载在SD卡或者内存中并播放在线播放音乐提供音
3、乐播放的基本功能显示声音波段表示根据声音波段产生震动的波段提供读取SD卡音乐检测SD卡,并显示出音乐文件用户可以定制音乐均衡器,以满足不同首质需求提供不等的滑动条,用以控制声音的质量,均衡器由滑动条调节音质的大小0-100提供歌词跟随音乐滚动更能采用多线程以及解析LRC歌词文件同步播放音乐以及歌词提供重力感应选择上、卜.首歌曲功能采用Android系统的重力感应,以便选择上卜首歌曲进行播放软件程序流程图音乐播放器流程图五:详细设计那么接下来就开始我们的每一个模块的详细设计了:在线下载音乐:提供一个文本框供用户输入网络音乐文件地址,然后确定下载,并提供进度条显示,下载完毕后关闭对话框,注意进程之
4、间的问题。在线播放音乐提供音乐播放的基本功能,快进,暂停,播放,快退,同时进度滑块条需跟随滑动,用户也可以滑动滑动条进行调整播放位置。提供读取SD卡音乐检测用户SD卡,如果没有,则弹出信息提示,并提示用户下载网络音乐,如果检测有SD卡,则再遍历是否有可播放文件,如果没有,则返回。如果有,则显示出全部音乐文件,并提供点击播放功能。用户可以定制音乐均衡器,以满足不同音质需求以一个对话框形式表现出,并提供多项滑动条供用户调节音频,同时更新音乐播放的质量。音量调节提供提供滑动条供用户调节音量,音量范围在0100之间提供歌词跟随音乐滚动更能解析LRC歌词文件,并同步歌词已经播放声音,注意以多线程方式以及
5、解析xml方式处理提供重力感应选择上、下首歌曲功能根据系统自带API开启重力感应功能,同时根据感应的方向选择切换到上下不同首歌曲,然后播放六:编码、单元测试。七:综合测试组织人员对其进行一般性操作测试,针对每一模块进行,同时编写测试报告。程序员修正Bug,根据用户反映,及时调整。如果条件允许,可以变编写:测试计划,测试大纲,搭建测试环境,设计和生成测试用例,测试报告八:软件使用培训以及后期维护组织人员进行软件使用培训,并且由程序员或者美工人员制作培训指南。程序员需熟悉相关模块,并熟悉文档,以便进行后期维护。歌词同步的原理其实很简单:歌词显示是一个线程,音乐播放时一个线程,通过播放时间将歌词显示
6、进度与播放进度同步起来。网络标准的歌词格式是LRC.我们看下一个LRC文档,其格式就一目了然了.ti:爱ar:小虎队al:华纳国语情浓13首by:爱上你了音乐网02:08.0000:38.00把你的心、我的心串一串02:11.0000:41.00串一株幸运草、串一?同心圆02:16.0000:46.00让所有期待未?的呼唤02:19.0000:49.00趁青春做?伴03:16.0002:24.0000:53.00?让年轻越长大越孤单03:19.0002:27.0000:56.00把我的幸运草种在你的梦田03:23.0002:31.0001:01.00让地球随我?的同心圆LRC格式为歌词显示起始
7、时间歌词显示Z束时间歌词内容。了解歌词同步原理,我们可以想到要做如下工作:1 .LRC解析2 .LRC歌词显示3 .歌词与播放音乐同步4 .歌词的获取一LRC解析这边我推荐YOYOPlayer音乐播放开源项目.源代码已经非常好的支持了LRC解析.我拿过来就用了.过程大概如此:把LRC文件读到内存里面,用sentence数据结存放.Sentence里面有Fromtime,Totime,content三个成员变量。显示的时候需要这些数据。二.LRC歌词显示歌词的绘制通过重写OnDraw方法.绘制的代码贴出来:longt=tempTime;intindex=getNowSentenceIndex(t
8、);if(index=-1)return;Sentencenow=list.get(index);floatf=(t-now.getFromTime()*1.0f/(now.getToTime()-now.getFromTime();if(f>0.98f)f=0.98f;Shadershader=newLinearGradient(0,0,now.getContentWidth(mTxtPaint),0,newintColor.RED,Color.BLUE,newfloatf,f+0.01f,TileMode.CLAMP);mTxtPaint.setShader(shader);canv
9、as.drawText(now.getContent(),0,20,mTxtPaint);上面的代码很简单,关键一个函数是getNowSentenceIndex(t).通过播放时间来获得歌词的索弓I.我们看下getNowSentenceIndex()如何实现./*得到当前正在播放的那一句的下标不可能找不到,因为最开头要加一句自己的句子,所以加了以后就不可能找不到了*return下标*/privateintgetNowSentenceIndex(longt)for(inti=0;i<list.size();i+)if(list.get(i).isInTime(t)returni;/thro
10、wnewRuntimeException("竟然出现了找不到的情况!");return-1;)还有一个歌词渐变的效果,其关键代码在与对画笔的设置,如下.Shadershader=newLinearGradient(0,0,now.getContentWidth(mTxtPaint),0,newintColor.RED,Color.BLUE,newfloatf,f+0.01f,TileMode.CLAMP);mTxtPaint.setShader(shader);三.歌词与播放音乐同步音乐播放的时候,同时启动歌词显示线程.将音乐播放的时间设置到歌词View的成员变量中,以达到
11、同步的目的。privateclassMyHandlerextendsHandlerOverridepublicvoidhandleMessage(Messagemsg)/Log.v("#hahah",""+mp.getCurrentPosition();/重画lrcView.mLyric.setTime(mp.getCurrentPosition();lrcView.invalidate();四.歌词的获取歌词的获取是通过百度搜索出来的.具体代码如下,很好看懂,关键代码如下:GetMethodget=newGetMethod("URLEncod
12、er.encode("filetype:lrc"+key,"GBK");get.addRequestHeader("Host","");get.addRequestHeader("User-Agent","Mozilla/5.0(Windows;U;WindowsNT5.1;zh-CN;rv:1.8.1.11)Gecko/20071127Firefox/2.0.0.11");get.addRequestHeader("Accept","text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5");get.addRequestHeader("Accept-Language","zh-cn,zh;q=0.5");get.addRequestHeader("Keep-Alive&qu
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 5832.3-2025气体分析气体中微量水分的测定第3部分:光腔衰荡光谱法
- 江西省公务员2025年行测判断推理冲刺卷
- 初中跳蚤市场活动方案
- 2024-2025 学年成都市小学五年级数学期中模拟试卷(附答案及思路)
- 2024-2025 学年成都市小学五年级科学期中模拟试卷(考点梳理版含答案)
- 2025年黑龙江省公务员考试面试冲刺押题卷
- 2025年配料关键岗位试题及答案
- 2025年南极动物素描试题及答案
- 2025年初中一年级英语上学期情景对话
- 2025年湖南省公务员考试行测真题试卷
- 旅行社计调职业技能模拟试卷含答案
- 土建分包施工管理办法
- DB4201T 725-2024 武汉市排水检查井非开挖修复技术规程
- 小贷公司贷款催收管理制度
- 珠海市产业和招商扶持政策汇编(2025年版)
- 综合虫害管理培训
- 直播公司规则管理制度
- 数据标注教学课件模板
- 新生儿溢奶与吐奶护理要点
- 公交公司安全生产管理制度
- 公司法务部管理制度
评论
0/150
提交评论