首页 Android音乐播放器开发文档

Android音乐播放器开发文档

举报
开通vip

Android音乐播放器开发文档Android音乐播放器 撰写人:张XX 2011-3-15 一、 问题定义 本软件是为了用户智能手机Android而开发的一套智能软件,提供在线下载音乐,在线播放音乐,读取SD卡音乐文件等功能。 二、 可行性研究 社会可行性分析:3G技术飞速发展,为满足人们对音乐的追求,音乐播放器层出不从,然而市面上大多音乐播发器软件都太难操作,或者音质不好,不能给用户以更好体验,故提出开放一套更加人性化的手机播放器。 技术可行性分析:以现阶段android技术发展水平,技术人员的技术配备,以及现有资源文档的配备来说,实现本软...

Android音乐播放器开发文档
Android音乐播放器 撰写人:张XX 2011-3-15 一、 问 快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题 定义 本软件是为了用户智能手机Android而开发的一套智能软件,提供在线下载音乐,在线播放音乐,读取SD卡音乐文件等功能。 二、 可行性研究 社会可行性分析:3G技术飞速发展,为满足人们对音乐的追求,音乐播放器层出不从,然而市面上大多音乐播发器软件都太难操作,或者音质不好,不能给用户以更好体验,故提出开放一套更加人性化的手机播放器。 技术可行性分析:以现阶段android技术发展水平,技术人员的技术配备,以及现有资源文档的配备来说,实现本软件是可能的。 经济可行性分析:有本人个人时间以及经费支持,使得开发此软件有了资金保障,可以充分利用这一优势,尽快开发。 其他可行性分析: 三、 需求分析 随着3G时代的到来,手机应用越来越普遍,加之国民手机持有量更是爆炸式增长。移动音乐服务正是为这一形势而发展起来,本人提出一种多功能手机音乐播放器的应用,主要为了满足不同人群的音乐需要,并且提高优质的音乐服务,于是提出本音乐播放器的主要功能。 需求功能如下: 在线下载音乐功能。 在线播放音乐 显示声音波段 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 示 提供读取SD卡音乐 用户可以定制音乐均衡器,以满足不同音质需求 音量调节 提供歌词跟随音乐滚动更能 提供重力感应选择上、下首歌曲功能 四、概要 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 (总体设计): 模块 简要说明 在线下载音乐功能 本根据用户输入音乐文件地址,自动下载在SD卡或者内存中并播放 在线播放音乐 提供音乐播放的基本功能 显示声音波段表示 根据声音波段产生震动的波段 提供读取SD卡音乐 检测SD卡,并显示出音乐文件 用户可以定制音乐均衡器,以满足不同音质需求 提供不等的滑动条,用以控制声音的质量,均衡器 音量调节 由滑动条调节音质的大小0--100 提供歌词跟随音乐滚动更能 采用多线程以及解析LRC歌词文件同步播放音乐以及歌词 提供重力感应选择上、下首歌曲功能 采用Android系统的重力感应,以便选择上下首歌曲进行播放         软件程序流程图 五:详细设计 那么接下来就开始我们的每一个模块的详细设计了: 在线下载音乐: 提供一个文本框供用户输入网络音乐文件地址,然后确定下载,并提供进度条显示,下载完毕后关闭对话框,注意进程之间的问题。 在线播放音乐 提供音乐播放的基本功能,快进,暂停,播放,快退,同时进度滑块条需跟随滑动,用户也可以滑动滑动条进行调整播放位置。 提供读取SD卡音乐 检测用户SD卡,如果没有,则弹出信息提示,并提示用户下载网络音乐,如果检测有SD卡,则再遍历是否有可播放文件,如果没有,则返回。如果有,则显示出全部音乐文件,并提供点击播放功能。 用户可以定制音乐均衡器,以满足不同音质需求 以一个对话框形式表现出,并提供多项滑动条供用户调节音频,同时更新音乐播放的质量。 音量调节提供 提供滑动条供用户调节音量,音量范围在0—100之间 提供歌词跟随音乐滚动更能 解析LRC歌词文件,并同步歌词已经播放声音,注意以多线程方式以及解析xml方式处理 提供重力感应选择上、下首歌曲功能 根据系统自带API开启重力感应功能,同时根据感应的方向选择切换到上下不同首歌曲,然后播放。 六:编码、单元测试。 七:综合测试 组织人员对其进行一般性操作测试,针对每一模块进行,同时编写测试 报告 软件系统测试报告下载sgs报告如何下载关于路面塌陷情况报告535n,sgs报告怎么下载竣工报告下载 。程序员修正Bug,根据用户反映,及时调整。 如果条件允许,可以变编写:测试计划,测试大纲,搭建测试环境,设计和生成测试用例,测试报告 八:软件使用培训以及后期维护 组织人员进行软件使用培训,并且由程序员或者美工人员制作培训指南。程序员需熟悉相关模块,并熟悉文档,以便进行后期维护。 歌词同步的原理其实很简单: 歌词显示是一个线程, 音乐播放时一个线程,通过播放时间将歌词显示进度与播放进度同步起来。 网络 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 的歌词格式是LRC. 我们看下一个LRC文档,其格式就一目了然了. [ti:爱] [ar:小虎队] [al:华纳国语情浓13首] [by:爱上你了音乐网] [02:08.00][00:38.00]把你的心、我的心串一串 [02:11.00][00:41.00]串一株幸运草、串一?同心圆 [02:16.00][00:46.00]让所有期待未?的呼唤 [02:19.00][00:49.00]趁青春做?伴 [03:16.00][02:24.00][00:53.00]?让年轻越长大越孤单 [03:19.00][02:27.00][00:56.00]把我的幸运草种在你的梦田 [03:23.00][02:31.00][01:01.00]让地球随我?的同心圆 …. LRC 格式为 [歌词显示起始时间][歌词显示结束时间]歌词内容。 了解歌词同步原理,我们可以想到要做如下工作: 1. LRC 解析 2. LRC 歌词显示 3. 歌词与播放音乐同步 4. 歌词的获取 一 LRC解析 这边我推荐YOYOPlayer 音乐播放开源项目. 源代码已经非常好的支持了LRC解析. 我拿过来就用了. 过程大概如此: 把LRC文件读到内存里面,用 sentence数据结构存放. Sentence里面有 Fromtime, Totime, content三个成员变量。显示的时候需要这些数据。 二. LRC歌词显示 歌词的绘制通过重写 OnDraw方法. 绘制的代码贴出来: long t = tempTime; int index = getNowSentenceIndex(t); if (index == -1) { return; } Sentence now = list.get(index); float f = (t - now.getFromTime()) * 1.0f / (now.getToTime() - now.getFromTime()); if (f > 0.98f) { f = 0.98f; } Shader shader = new LinearGradient(0, 0, now.getContentWidth(mTxtPaint), 0, new int[] { Color.RED, Color.BLUE }, new float[] { f, f + 0.01f }, TileMode.CLAMP); mTxtPaint.setShader(shader); canvas.drawText(now.getContent(), 0, 20, mTxtPaint); 上面的代码很简单,关键一个函数是getNowSentenceIndex(t). 通过播放时间来获得歌词的索引. 我们看下getNowSentenceIndex()如何实现. /** * 得到当前正在播放的那一句的下标 不可能找不到,因为最开头要加一句 自己的句子 ,所以加了以后就不可能找不到了 * * @return 下标 */ private int getNowSentenceIndex(long t) { for (int i = 0; i < list.size(); i++) { if (list.get(i).isInTime(t)) { return i; } } // throw new RuntimeException("竟然出现了找不到的情况!"); return -1; } 还有一个歌词渐变的效果,其关键代码在与对画笔的设置,如下. Shader shader = new LinearGradient(0, 0, now.getContentWidth(mTxtPaint), 0, new int[] { Color.RED, Color.BLUE }, new float[] { f, f + 0.01f }, TileMode.CLAMP); mTxtPaint.setShader(shader); 三. 歌词与播放音乐同步 音乐播放的时候,同时启动歌词显示线程. 将音乐播放的时间设置到歌词View的成员变量中, 以达到同步的目的。 private class MyHandler extends Handler { @Override public void handleMessage(Message msg) { // Log.v("#################hahah", "" + mp.getCurrentPosition()); // 重画 lrcView.mLyric.setTime(mp.getCurrentPosition()); lrcView.invalidate(); } } 四. 歌词的获取 歌词的获取是通过百度搜索出来的. 具体代码如下,很好看懂,关键代码如下: GetMethod get = new GetMethod("=" + URLEncoder.encode("filetype:lrc " + key, "GBK")); get.addRequestHeader("Host", "www.baidu.com"); get.addRequestHeader("User-Agent", "Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.8.1.11) Gecko/20071127 Firefox/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");
本文档为【Android音乐播放器开发文档】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_597436
暂无简介~
格式:doc
大小:33KB
软件:Word
页数:10
分类:互联网
上传时间:2019-02-18
浏览量:55