- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
多媒体综合课程设计报告
课题名称:
姓名:
学号:282310
2011年10月
目录
1需求分析 2
.1 问题定义 2
1.2 可行性研究 2
1.3 需求分析 2
1.4 总体设计 3
2. 概要设计 4
2.1 引言 5
2.1.1 编写目的 5
2.1.2 背景 5
2.1.3 术语定义 5
2.1.4 参考资料 5
2.2 总体设计 6
2.2.1 总体技术框架 6
2.2.2 需求与设计对应表 6
2.3 功能设计 6
2.3.1 音乐播放 6
2.3.2 后台运行 6
2.3.3 读取SD卡…… 6
2.3.4 歌词同步…… 6
2.3.5 手势换歌…… 6
2.4接口设计 8
2.5部署与组件设计 9
2.5.1 部署模型 9
3. 详细设计 8
3.1.1 在线音乐下载 8
3.1.2. 在线播放音乐 8
3.1.3读取SDcard. 9
3.1.4重力感应换歌. 10
3.1.5 歌词同步 10
3.1.6 歌词获取 11
3.2编码、单元测试
3.3综合测试
3.4软件使用培训及后期维护
4.使用说明 14
.1 软件的操作流程 14
通过播放时间将歌词显示进度与播放进度同步起来。
Chapter 3
详细设计
3.1模块的详细设计了:
3.1.1在线下载音乐:
提供一个文本框供用户输入网络音乐文件地址,然后确定下载,并提供进度条显示,下载完毕后关闭对话框,注意进程之间的问题。
3.1.2在线播放音乐
提供音乐播放的基本功能,快进,暂停,播放,快退,同时进度滑块条需跟随滑动,用户也可以滑动滑动条进行调整播放位置。
3.1.3提供读取SD卡音乐
检测用户SD卡,如果没有,则弹出信息提示,并提示用户下载网络音乐,如果检测有SD卡,则再遍历是否有可播放文件,如果没有,则返回。如果有,则显示出全部音乐文件,并提供点击播放功能。
用户可以定制音乐均衡器,以满足不同音质需求
以一个对话框形式表现出,并提供多项滑动条供用户调节音频,同时更新音乐播放的质量。
音量调节提供
提供滑动条供用户调节音量,音量范围在0—100之间
提供歌词跟随音乐滚动更能
解析LRC歌词文件,并同步歌词已经播放声音,注意以多线程方式以及解析xml方式处理
3.1.4重力感应换歌
提供重力感应选择上、下首歌曲功能
根据系统自带API开启重力感应功能,同时根据感应的方向选择切换到上下不同首歌曲,然后播放。
3.1.5歌词同步
歌词同步的原理其实很简单:
歌词显示是一个线程, 音乐播放时一个线程,通过播放时间将歌词显示进度与播放进度同步起来。
网络标准的歌词格式是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
原创力文档


文档评论(0)