基于AS3.0的音乐点播系统的设计与实现 毕业论文.doc_第1页
基于AS3.0的音乐点播系统的设计与实现 毕业论文.doc_第2页
基于AS3.0的音乐点播系统的设计与实现 毕业论文.doc_第3页
基于AS3.0的音乐点播系统的设计与实现 毕业论文.doc_第4页
基于AS3.0的音乐点播系统的设计与实现 毕业论文.doc_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

独 创 声 明 本人郑重声明:所呈交的毕业设计(论文),是本人在指导老师的指 导下,独立进行研究工作所取得的成果,成果不存在知识产权争议。 尽我所知,除文中已经注明引用的内容外,本设计(论文)不含任何 其他个人或集体已经发表或撰写过的作品成果。对本文的研究做出重 要贡献的个人和集体均已在文中以明确方式标明。 本声明的法律后果由本人承担。 作者签名: 二 年 月 日 毕业设计(论文)使用授权声明 本人完全了解滨州学院关于收集、保存、使用毕业设计(论文) 的规定。 本人愿意按照学校要求提交学位论文的印刷本和电子版,同意学 校保存学位论文的印刷本和电子版,或采用影印、数字化或其它复制 手段保存设计(论文);同意学校在不以营利为目的的前提下,建立 目录检索与阅览服务系统,公布设计(论文)的部分或全部内容,允 许他人依法合理使用。 (保密论文在解密后遵守此规定) 作者签名: 二 月 日 i 基于 as3.0 的音乐点播系统的设计与实现 摘 要 在多媒体技术高速发展的今天,多媒体播放器出现了多种缺点和 毛病,主要表现在内存大量占用和操作复杂繁琐方面。本文针对当今 流行音乐播放器的优缺点进行了研究,然后在此基础上进行综合和总 结,开发出了一个功能丰富和操作简易的音乐点播系统,该播放器具 有低内存占用和绿色无广告的特点,因此具有广阔的市场前景。本音 乐点播系统是基于脚本语言 actionscript3.0,利用 flashbuilder4.6 设计 开发的 air 应用程序。主要利用 actionscript3.0 作为后台逻辑处理和功 能实现,文中对音乐播放器做了详细的需求分析,并详细介绍了音乐 播放器的总体设计,包括音乐播放器的架构设计、功能模块的划分、 音乐播放列表文件的设计、常用工具的设计、本地数据存储设计等, 然后具体介绍了以上各个部分和功能的具体实现原理和过程,最后再 对该音乐点播系统进行了黑盒测试和白盒测试,没有重大的异常和错 误,证明其设计方案的可行性和正确性。 关键词:多媒体;播放器;人性化 ii design and implementation of music-on-demand system based on as3.0 abstract with the rapid improving of the times and the rapid development of network technology, multimedia technology keeps pace with the times. as sustained rapid development in multimedia technology, a variety of shortcomings and faults are emerged in multimedia player, mainly in the occupation of memory and the complication of the operation. this article studys the advantages and disadvantages of the current popular music player, then developed a music-on-demand system with low memory footprint and without advertisements based on this, so it will get a broad market prospects. the music on demand system is based on the scripting language actionscript 3.0, uses the flashbuilder4.6 design and develop the air application. actionscript3.0 is main used to handle the logic and to realize the function, then a detailed requirement analysis is make and introduces the general design of the music player. include the architecture design, the functional modules divided, the design of music play list file, the design of tools, the local data storage design and so on, and then introduced the specific implementation principle and process of the above every part and function. in this paper, the design of the music on-demand system is tested by the black box and white box, no major anomalies and errors, to prove the feasibility and correctness of its design. key words: multimedia;player;humane i 目 录 第一章 绪论 1 1.1 研究的目的和意义 .1 1.1.1 研究目的 1 1.1.2 研究意义 1 1.2 国内外研究现状 .1 1.2.1 国外研究现状 2 1.2.2 国内研究现状 3 第二章 air 开发技术介绍 .4 2.1 air 开发技术介绍 4 2.1.1 开发工具介绍 4 2.1.2 容器结构介绍 .5 2.2 开发语言 .6 2.2.1 开发语言简介 6 2.2.2 开发语言主要功能 7 第三章 酷猪音乐播放器总体设计 8 3.1 总体 功能设计 8 3.1.1 软件主要功能设计 8 3.1.2 软件主要功能介绍 9 3.2 软件数据库设计 .10 3.2.1 播放列表(xml 文件)结构 .10 3.2.2 “酷猪工具”数据 存储的数据结构设计 11 第四章 酷猪音乐播放器主要模块实现 13 4.1 音乐播放主要功能实现代码 .13 4.1.1 主界面主要源代码 13 ii 4.1.2 歌曲播放主要代码 .14 4.1.3 歌曲播放顺序主要代码 .15 4.1.4 歌曲搜索主要代码 .15 4.2 歌词播放主要功能代码 .16 4.2.1 歌词信息显示及播放代码 16 4.3 歌词去除广告信息 .17 4.3.1 歌词信息读取主要代码 17 4.3.2 歌词信息广告删除主要代码 17 4.4 本地歌曲扫描 .18 4.4.1 本地硬盘歌曲扫描主要代码 18 4.4.2 生成扫描结果(xml 文件)主要代码 .19 第五章 软件测试 20 5.1 软件基本功能模块测试(黑盒测试) 20 5.1.1 软件前台使用测试 20 5.2 软件后台调试(白盒测试) .30 5.2.1 音乐播放部分后台调试 .30 5.2.2 常用工具部分后台调试 .30 结 论 32 参考文献 34 谢 辞 35 1 第一章 绪论 1.1 研究的目的和意义 随着 internet 的发展,人们的个人计算机上音乐播放软件越来越多,功能越来 越丰富,但同时很鸡肋的功能也越来越多,内存占用也越来越大,与其它音乐播放 器比较,这一音乐播放器具有功能丰富、占用空间小的特点,它与现有音频资源应 用状况紧密结合,既具有很强的直观感,又不失一般性。因此开发制作这一播放器 具有备现实意义。 1.1.1 研究目的 在软件技术迅速发展的同时,个人计算机上安装的软件越来越多,多个软件同 时运行,在硬件的消耗上是相当大的,特别是在这种情况下内存(ram)会成为 一种相当紧缺的资源,内存的紧缺对于软件开发来说会限制软件的发展。本课题着 重研究利用 actionscript3.0 开发音乐播放器,在满足音乐播放的前提下,尽量降低 内存占用的方法。 1.1.2 研究意义 每个软件都极尽所能的展现各种花俏的功能,争奇斗艳的程度让人目不暇接。 目前常见的音乐播放器软件各有特色,比如提供词自动匹配下载、歌手相关歌曲推 荐、音乐排行榜、小游戏,更有甚者还有团购广告。虽然在外观上有很大的差异, 但功能上却大同小异,而且由于强制安装插件的原因而存在着多种缺点和毛病,主 要表现在内存大量占用和操作复杂繁琐方面。为了解决现行播放器大量耗用的内存 和操作不人性化的问题,本课题设计并实现了播放器的低内存占用和人性化操作。 在开辟创建绿色软件和内存节约方面有重要意义。围绕低内存占用这个目标,研究 怎么降低多媒体音乐播放器的内存占用,充分体现了节约为本的思想,符合和谐发 展的主题。 1.2 国内外研究现状 随着 internet 的商业化的发展,多个网络或者软件公司纷纷推出各种方法来争 取用户群,争取市场占有率。在多媒体播放器方面也不例外,多家公司通过捆绑安 2 装或弹窗提示来在某一定程度上强制用户安装其附属的其他软件或注册旗下的账号。 一些商家纷纷行动规划开发适应本企业的播放器。目前国内比较流行的音乐播放器 有:酷狗、windows media player、qq 音乐盒、酷我音乐盒等。酷狗和 windows media player 是使用最广泛的多媒体播放器。其中酷狗音乐播放器凭借其丰富的歌 曲、歌词和 mv 资源成为网络上是使用最多的播放器, qq 音乐盒与酷狗类似,但 其中还加入了 qq 客户端的一些功能,因而也有比较广的客户群。百度音乐盒有网 页播放器,强大的音乐搜索功能为播放器提供大量的免费高质量音乐。网络上有不 少的研究者热衷于播放器的研究,利用控件或者是 mci 接口开发自己的播放器, 并且取得了很大的进步,推动了播放器的发展。不过在声音的表现上,国内的播放 器远不如 beoplayer 和 foobar2000 专业。 1.2.1 国外研究现状 由于计算机技术国外先于国内,在音乐播放器方面,国外起步比国内早,而且 技术成熟。国外的播放器一直讲究的是实用和技术,多是针对专业人士开发的,因 而在操作和使用上不适合大众,在外观方面更不是很注重,很平凡的用户界面,其 能体现价值的地方就是音质和对乐音的渲染和还原上,在内核上都是独立开发的, 并不是使用已经做好的通用解码内核。比如 windows media player,其支持的音乐 格式比较少,界面也比较普通,却是浏览器中某些音乐功能不可缺少的部分,其主 要是给 window 系统中的音频相关软件提供软件接口。 bang & olufsen 是丹麦的一 家全球顶级数字产品设备提供商,其独特的高贵和品质是他们的产品设计理念,因 此其产品一直受到了很多人的追捧和崇拜。bang & olufsen 出品的音乐播放器 beoplayer 被音乐发烧友称为“音质最好的播放器 ”。播放效果好,对音质有一定的提 升作用,放 mp3 时可以把很多爆音和杂音都修饰掉, beoplayer 可以不用借助硬件 设备来提高 mp3 的听觉效果,声音输出清脆纯净, beoplayer 对乐器声的还原更是 无与伦比 1。但是正是由于功能上的丰富,界面的酷炫,其安装包有 70m,比一般 的视频播放器还大,其内存占用方面更是居高不下。beoplayer 在人性化方面其中 加入了自动扫描和分组的功能,但是 beoplayer 不支持歌词显示,使得对于流行歌 曲的播放上很不方便。而 foobar 则也出现类似情况,在所有媒体软件中 foobar2000 是最专业和最追求完美音质的一种专家级别音乐播放解码器 2。foobar2000 的定位 是专业数字音频播放工具,它更注重技术,所以在使用过程中涉及到了很多的专业 3 数字音频知识,普通的用户对其常常无从下手,这也就限制了其在大众中的传播和 普及。 1.2.2 国内研究现状 随着 internet 的商业化的发展,一些商家纷纷行动规划开发适应本企业的播放 器。目前国内比较流行的音乐播放器有:酷狗、windows media player、qq 音乐盒、 酷我音乐盒等。酷狗和 windows media player 是使用最广泛的多媒体播放器。其中 酷狗音乐播放器凭借其丰富的歌曲、歌词和 mv 资源成为网络上是使用最多的播放 器,qq 音乐盒与酷狗类似,但其中还加入了 qq 客户端的一些功能,因而也有比 较广的客户群。百度音乐盒有网页播放器,强大的音乐搜索功能为播放器提供大量 的免费高质量音乐。网络上有不少的研究者热衷于播放器的研究,利用控件或者是 mci 接口开发自己的播放器,并且取得了很大的进步,推动了播放器的发展。不过 在声音的表现上,国内的播放器远不如 beoplayer 和 foobar2000 专业。 4 第二章 air 开发技术介绍 2.1 air 开发技术介绍 adobe air(air=adobe integrated runtime) ,开发代号为 apoll。air 是针对 网络与桌面应用的结合所开发出来的技术,可以不必经由浏览器而对网络上的云端 程式做控制 3。 air 是可以跨平台的,就像 java 一样,只要有个虚拟机,在任何硬件或软件系 统平台上都可以运行。 2.1.1 开发工具介绍 flex builder 是 macromedia 的 ide,用于 flex 应用程序开发。flex builder 使设计者和开发者更高效地建立 flex 应用程序。设计者可以快速建立应用程序界 面、快速简单地分布引人注目的 flex 用户界面并将其连接到后端数据源。开发者 可以使用代码提示和调试工具,对 flex 应用程序进行高效的的编码和调试。2009 年 6 月 1 日,adobe 宣布,下一代 flex builder4 将改名为 flash builder 4,这引起 了众多开发者的异议 4。 本播放器主要是采用 flex4.6 开发和构建的,flex4.6 通常是指 adobe flex builder,是最初由 macromedia 公司在 2004 年 3 月发布的,基于其专有的 macromedia flash 平台,它是涵盖了支持 ria(rich internet applications 富联网) 的开发和部署的一系列技术组合。 开发工具 flash builder 4.6 主界面如下图: 5 图 2.1 开发工具界面 2.1.2 容器结构介绍 在 flashbuilder 中,所有的组件都逐级嵌套在容器中。flashbuilder 应用就是用 容器搭建起来的,组件是在容器中排列的。application 是最外层的容器,在 application 中嵌入各种容器和界面元素,容器中又可以再嵌套容器。容器中最主要 的工作就是管理容器中组建的布局,容器通过多种版面布局方式(比如,绝对布局、 相对布局、纵向布局、横向布局等) 。通过有效地使用容器,同时恰当地配合运用 多个容器,可以对应用程序的外观实现最全面、最彻底、最有效率的控制 5。 6 图 2.2 容器结构的嵌套显示结构 2.2 开发语言 2.2.1 开发语言简介 actionscript 动作脚本是遵循 ecmascript 第四版 的 adobe flash player 运行 时环境的编程语言。它在 flash 内容和应用程序中实现交互性、数据处理以及其 他功能。actionscript 是 flash 的脚本语言,与 javascript 相似,actionscript 是一种 编程语言,新出的 as3.0 使用 oop(面对对象编程) ,增加更强的报错能力,指定 类型也更明确 6。 mxml 是一个可以让你在 adobe flex 中布局用户界面组件的一种 xml 语言。 你也可以使用 mxml 声明来定义程序中的非可视化组件,比如 对服务器端数据源 的访问以及用户界面组件和数据源之间的数据绑定。mxml 标签与 actionscript 类 或者类中的属性是相对应的。当你编译你的 flex 应用程序的时候, flex 解析你的 mxml 标签并且生成相应的 actionscript 类。然后这些 actionscript 类会被编译成 swf 字节码存储到一个 swf 文件中 7。 2.2.2 开发语言主要功能 actionscript 3.0 提供了可靠的编程模型,具备面向对象编程的基本知识的开发 人员对此模型会感到似曾相识。actionscript 3.0 中的一些主要功能包括: 舞台 显示对象 显示对象的实例 显示对象容器 显示对象 swf 文件主类 的实例 显示对象容器 显示对象 显示对象容器 7 一个新增的 actionscript 虚拟机,称为 avm2,它使用全新的字节码指令集, 可使性能显著提高; 一个更为先进的编译器代码库,它更为严格地遵循 ecmascript (ecma 262) 标准,并且相对于早期的编译器版本,可执行更深入的优化; 一个扩展并改进的应用程序编程接口 (api),拥有对对象的低级控制和真正意 义上的面向对象的模型; 一种基于即将发布的 ecmascript (ecma-262) 第 4 版草案语言规范的核心语 言。 一个基于 ecmascript for xml (e4x) 规范(ecma-357 第 2 版)的 xml api。e4x 是 ecmascript 的一种语言扩展,它将 xml 添加为语言的本机数据类 型; 一个基于文档对象模型 (dom)第 3 级事件规范的事件模型 8。 8 第三章 酷猪音乐播放器总体设计 3.1 总体功能设计 由于本软件的主要的使用者是滨州学院计算机科学技术系-计算机科学与技术 专业的师生,考虑到使用人的计算机硬件设备和软件设备相对比较先进、学生的计 算机能力水平比较高超,所以本软件的一些功能就不再在帮助中展示,在算法上尽 量采用了中庸的算法。 酷猪音乐播放器功能结构如下图: “酷猪”音乐播放器 打开 暂停/播放 停止 上一曲 下一曲 音量+ 常用功能 附加功能 音量- 消除广告 创建列表 酷猪工具 记事本 闹钟 便签提醒 约会 图 3.1 酷猪播放器主要功能 3.1.1 软件主要功能设计 酷猪音乐播放器功能设计如下图: 9 打开播放器 音乐播放部分 常用工具部分 本地音乐扫描 本地歌词扫描 设置、编辑、添加、删除 工具提示(桌面右下 角弹窗显示)歌曲播放 歌词同步播放 歌词去广告 图 3.2 酷猪播放器主要功能设计 3.1.2 软件主要功能介绍 音乐播放部分:对于第一次使用该播放器的用户,首先需要扫描本地硬盘的音 乐文件,生成播放列表文件。然后播放器自动读取该列表文件,将列表中的所有音 乐文件的文件名显示在播放器的列表窗口中,然后通过双击播放列表中的任意一首 音乐,开始播放音乐。此时控制音乐的各个控制部件开始生效。 歌词播放部分:在播放音乐的同时,播放器查找与音乐文件相同目录下的且文 件名相同的歌词文件,如果本地存有与该音乐文件文件名相同的歌词文件(.lrc 文 件) ,则此时歌词是同步播放的,否则歌词窗口显示“酷猪音乐,只为你我传播好 音乐” 。 酷猪工具部分:用户通过点击打开不同的小工具,然后输入具体的时间、内容 等参数,然后点击“添加+ ”按钮。如果该小工具需要进行倒计时操作,系统将计 算该添加项在所有选项中顺序,然后对所有选项进行排序,将排序最靠前的选项的 参数传递到计时器中,计时器开始倒计时。当剩余时间为 0 时,桌面右下角将弹出 提示框。比如用户设置了“提醒” ,内容是“今天 18:30 需要开会” ,这时倒计时器 将获取系统中所有“提醒” ,如果系统中有更靠前的提醒,排序后,就这个“提醒” 先存储在系统中等候调用,如果系统中没有更靠前的提醒,则通过计算现在时刻与 “提醒时间”的时间差来设置计时器,然后再界面上倒计时。当到会议时间 18:30 时,桌面右下角弹出该“提醒 ”的内容,并提醒用户时间到。 10 xml 文件 主节点(一个) 子节点 n 子节点 1 子节点 2 子节点 3 文件名 文件路径 添加时间 3.2 软件数据库设计 3.2.1 播放列表(xml 文件)结构 可扩展标记语言 (extensible markup language, xml) ,用于标记电子文件使 其具有结构性的标记语言,可以用来标记数据、定义数据类型,是一种允许用户对 自己的标记语言进行定义的源语言。 xml 是标准通用标记语言 (sgml) 的子集, 非常适合 web 传输。xml 提供统一的方法来描述和交换独立于应用程序或供应 商的结构化数据 9。 由于本软件是一个完全脱离网络的本地音乐播放器,故没有使用庞大的数据库, 而是采用了 xml 和普通的类似文本文件的形式存储产生的数据。因为 xml 文件已有 固定的国际标准,在其固有标准的基础上,本播放器对 xml 文件存储结构进行了多 种方案设计,最终选择了一种分散的、简约的内部存储结构,让其更适合在本播放 器中使用。 xml 文件存储结构如下图: 图 3.3 酷猪音乐播放器 xml 文件存储结构 11 图 3.4 酷猪音乐播放器播放列表 xml 文件存储结构 3.2.2 “酷猪工具”数据存储的数据结构设计 在本地种存放播放器中产生的中间数据,比如用户设置的“提醒” 、 “闹钟”等 的数据,以及用户对播放器的自定义设置。因为没有网络的支持,故这些数据只能 存储在用户的本地硬盘中。本播放器为方便数据的使用,对数据的存储结构进行了 12 比较详细的分析和设计(各个实体类内容太多,现列举“记事本”和“闹钟”e-r 结构如下) 。 记事本 提醒时间 提醒提醒内容 提醒备注 提醒创建时间 闹钟 响铃时间 每周响铃日期 是否生效 内容 图 3.5 酷猪音乐播放器“记事本”和“闹钟”e-r 图 13 数据结构及存储结构如下: 图 3.6 酷猪音乐播放器数据结构及存储结构 实体类对象 (包含有多个数据字段) 实体类对象的集合(arraylist 或 array) ,包含有多个实体类对象 将对象序列化(amf) ,存储为数据文件(kztd 文 件,kuzhutooldata 文件 ) ,方便下次读取和操作 说明:如“提醒”的实体类为 warning00,它的实例化对象有多个,这些实例化对象 存储在 tempal(arraylist)中,然后再对 tempal 进行封转,放在 warningal 对 象中,最后将 warningal 对象序列化后存在数据文件 warningdat.kztd 中。 封装实体类对象的集合,添加便于操作的方法 注:amf( 是 action message format 的缩写) 是在 flash 和 flex 中 remoting 的一种 方式格式。不但能节省存储空间,而且格式化后的数据便于读取和管理。 闹钟的存储,不是采用的 arraylist,而是采用的 array 定长存储。 读取数据文件(kztd 文件,文件路径已经固定在 d:/kuku/tool) 读取数据文件中封装的实体类对象的集合 (arraylist 或 array) ,包含有多个实体类对象。 实体类对象 (包含有多个数据字段) 解封装实体类对象的集合 显示或操作实体类对象 获取实体类对象数据 14 第四章 酷猪音乐播放器主要模块实现 4.1 音乐播放主要功能实现代码 4.1.1 主界面主要源代码 主界面的代码主要用来实现界面控件布局,搭建功能框架,一下详细列出了所 有控件的类型和 id,以及相关的方法。 代码举例如下: 以上代码说明如下: mxml 文件不能命名为“windowedapplication” , “windowedapplication”是 主程序文件所采用的默认标记,不可以再用,也不能和程序中任一组件的 id 值同 名 10。xmlns:fx=/mxml/2009 xmlns: s=“library://flex/spark“ xmlns:mx=“library://flex/mx“这里表 示三个命名空间,以后就不用写命名空间的全名,只需要写命名空间的简称就行。 比如 xmlns:s=“library://flex/spark“中, library://flex/spark 是 spark 空间的全称, s 就是其简称。width=“712“ height=“636“ autolayout=“true“表 示程序窗口的大小和布局方式。creationcomplete=“creatcomplete()“表示在程序窗口 创建完成后触发的方法为 creatcomplete()。fontsize=“12“表示程序中的字体大小, 表示在这个窗口或界面中的字体大小为 12 磅。 xmlns:components=“ponents.*“表示用户自定义控件空间。 代码举例如下: 15 标签中的 s 前缀是一个命名空间。它是通过在 application 标签中 使用一个独一无二的 url 来声明的。s 前缀把在 s 命名空间中的每个组件映射到它 的完全限定类名。这就是为什么 flash builder 编译器可以在找到与 s 命名空间中的 mxml 标签相对应的 actionscript 类 11。也就是说,这里的实际上对 应的是一个名字为 id 对应值的对象,比如以上代码表示 s 命名空间下的一个 hslider 对象。这种类是预定义的,不需要用户再次自定义,而且这种类我们不需 要通过定义变量的方式来初始化。控件的相关参数必须写在以上代码表示一个 hslider 控件, id 表示控件被调用是的标识;x 、y 表示该控件在舞台上的坐标; change 表示在该控件的值改变时应该触发的方法;maximum 表示该控件的最大值; minimum 表示该控件的最小值;stepsize 表示每次拖动滑块时的步长值;tooltip 表 示该控件的提示信息;value 表示该控件的初始值 12。在本软件中所有的可视化控 件就是通过这种方式进行界面布局和控制的。可能该控件还有更多的选项,这里不 一一列举。这种可视化的编程环境使编码简单明了,使用方便。 4.1.2 歌曲播放主要代码 根据歌曲文件名获取歌曲 文件(.mp3 ) 文件存在 生成和获取歌曲信息变量 文件不存在处理 显示歌曲名、歌曲总时长、播 放进度,同步显示歌词。 歌曲用户控制 播放完,下一首歌曲 图 4.1 酷猪音乐歌曲播放流程 16 打开播放器后首先读取播放列表文件:playlist.xml,如果文件存在,读取其中 内容作为播放列表显示的内容,如果文件不存在,则提示用户创建列表。读取到列 表信息后,逐条分析数据,并根据文件路径获取音乐文件,并播放获取到的音乐文 件。 主要方法及功能如下: / 播放/暂停按钮 protected function play_pause_btn_clickhandler(event:mouseevent) /拖放进度条 protected function playingprocess_changehandler(event:event) /双击播放列表中的音乐文件 protected function playerlist_change_handler(event:mouseevent) 4.1.3 歌曲播放顺序主要代码 通过控制下一首音乐在播放器列表中的位置,然后达到“全部循环” 、 “顺序循 环” 、 “单曲播放” 。向获取列表位置的函数传递一个参数,分别表示:“全部循环” 、 “顺序循环” 、 “单曲播放” ,然后该参数返回一个下标志,播放器根据该下标支播 放音乐。 /播放顺序 protected function playorder_ddlist_changehandler(event:indexchangeevent) /下一首音乐的位置 protected function getnextitem(order:int) 4.1.4 歌曲搜索主要代码 通过模糊查找,正则表达式匹配的方式,查找列表中的所有音乐,如果包含关 键字信息的条目存在,则选中该条目,用户点击“播放”按钮,将播放该音乐。 点击“搜索”按钮,将出现搜索输入框,输入将要搜索的关键字,然后再点击 “搜索”按钮,如果搜索框中有关键字,将进行搜索匹配,否则将隐藏搜索输入框。 /搜索音乐 protected function search_btn_clickhandler(event:mouseevent) 17 4.2 歌词播放主要功能代码 有人喜欢一边听音乐,一边跟着音乐的节奏哼唱,或者可能会大声地唱出来。 为了提供边听边唱的方便,本音乐播放器自带歌词播放功能。相当于提供了一个简 单的卡拉 ok。从而相当方便的边听边唱。 根据歌曲文件名获取歌词 文件(.lrc) 文件存在 按二进制编码读取文件内容 文件不存在处理 转码为 gbk 编码的字符串 将 gbk 编码内容存入 array 处理后的 gbk 编码内容 将 array 内容逐个显示 播放完,下一首歌曲歌词 图 4.2 酷猪音乐歌词播放流程 4.2.1 歌词信息显示及播放代码 /显示歌词的方法 protected function lrcoperation(event:event) protected function getnewtimer(off:int = 0) protected function getnextlrc(event:event) 18 4.3 歌词去除广告信息 在歌词文件中,经常会出现很多广告信息,比如某人的 qq 号码、电话,甚至 公司的广告,这些信息严重影响我们欣赏音乐的心情,故本音乐播放器对于这些信 息进行了简单的处理,通过扫描歌曲的所有歌词信息,删除了这些垃圾信息,填上 本音乐播放器的“宗旨”“酷猪音乐,只为你我传播好音乐” 。而且支持任意 目录的删除广告信息,很方便的为自己的 mp3、手机、 mp4 等电子产品中的歌词去 除广告信息。为你提供一个绿色的视听环境。 4.3.1 歌词信息读取主要代码 根据选中的文件夹的路径,读取该文件夹下的所有歌词文件(lrc)文件,然后 将文件内容一句一句进行“对比” ,如出现广告等垃圾信息,则删除该行歌词,并 填充有用信息,直到所有歌词信息对比完毕。 /歌词信息读取的方法 protected function selected_handler(event:event) 4.3.2 歌词信息广告删除主要代码 歌词信息广告删除原理: 19 根据歌曲文件名获取歌词 文件(.lrc) 文件存在 按 gbk 编码读取整个文件, 将内容存进一个字符串。 文件不存在处理 处理该行的内容(查找广告, 如果存在则替换或删除) 通过查找字符串中的换行符, 逐行获取内容。 将该行内容替换字符串中内容 处理完,按 gbk 编码写回文 件 图 4.3 酷猪音乐删除广告信息流程 4.4 本地歌曲扫描 用户往往会将音乐和歌词存储在本地硬盘的一个文件夹中,以便于管理,本音 乐播放器支持扫描本地硬盘文件夹的功能,能一次性将一个文件夹的内容扫描生成 一个列表。 4.4.1 本地硬盘歌曲扫描主要代码 扫描用户指定的文件夹,将文件夹下的所有 mp3 文件的文件名和文件路径读 取出来,按照一定格式写入一个 string,然后将改 string 按照 utf-8 的编码方式写成 一个 xml 文件。 /扫描用户指定的文件夹 20 protected function filescan_btn_clickhandler(event:mouseevent) protected function showfile(event:event) 4.4.2 生成扫描结果(xml 文件)主要代码 xml 文件生成原理: 图 4.4 酷猪音乐 xml 文件生成原理 创建一个字符串,用来存 放 xml 文件内容 扫描用户选择的目录,将获取 到的 mp3 文件信息转码后存 入字符串。 处理字符串(转码为 utf-8 编码) 。 扫描添加完毕 将字符串按 utf-8 编码存入 文件 用户选择目录 21 第五章 软件测试 5.1 软件基本功能模块测试(黑盒测试) 5.1.1 软件前台使用测试 用户打开播放器后,在显示播放器主界面的同时将播放播放器的启动音乐,在 桌面上出现以下界面,说明启动成功。软件基本功能模块如图 5.1 示。 图 5.1 软件功能模块导航 点击软件界面的各个按钮进行以下测试: 音乐播放部分: (1) 音乐扫描 对于存在硬盘上的 mp3 文件夹,本播放器可以一次性添加进入播放列表。在 打开播放器后,只需要点击播放器界面左下侧的“扫描歌曲”按钮,然后在弹出的 对话框中选择正确的歌曲目录,点击确定后,歌曲扫描将自动进行,扫描完成后将 22 弹出警告,然后将扫描得到的歌曲以列表的形式显示在播放列表中。 图 5.2 扫描前(播放列表为空) 23 图 5.3 扫描后(播放列表添加了内容) 本软件产生成的播放列表文件是一个 xml 文件,文件路径为“d:kukuplaylist” , 目前还不支持多列表。 列表文件及路径如下图: 24 图 5.4 磁盘上生成了播放列表文件(下次打开播放器就不需要再次执行扫描操作) (2) 音乐操作(上/下一曲、暂停/播放、停止、音量调节、进度条拖动) 双击播放列表中的任意一歌曲,歌曲将开始播放,同时歌曲的控制控件开始生 效。测试结果下图所示。 25 图 5.5 音乐播放截图 (3) 歌词处理 在播放歌曲的同时,歌词会自动跟随歌曲同步播放。在点击界面上的歌词控制 控件后,歌词将关闭,再次点击歌词控制控件,歌词将再次打开。 常用工具部分: 当今很多人已经习惯每天坐在电脑前办公,每一天的工作都是围绕着电脑转, 为了提供这些人方便,本播放器集成了一些办公上可能有用的功能。 本软件的常用工具所产生的数据都存放在“d:kukutool”目录下,各种 kztd(kuzhu tool data)文件分别表示不同的工具产生的数据。文件如下图: 26 图 5.6 播放器数据文件 (1) 提醒 为自己的时间安排设置一个提醒,用户可以同时设置多个提醒,多个提醒互不 干扰。当提醒时间到达设置的时间时,播放器将通过右下角弹窗提醒用户需要处理 某件事,然后播放器将删除这个提醒。通过点击“新建”打开“新建提醒”窗口, 然后输入信息,输入完毕后,再点击“添加+”按钮,则提示用户创建成功。点击 “查看”按钮则可以看到当前已有的所有“提醒” ,并且将计时显示该提醒的所有 内容。 27 图 5.7 用户设置提醒 (2) 记事本 随意的记录某些东西,或者是创意的灵感、或者是烦心的诉说、或者是对某人 的思念。通过点击“新建”打开“新建记事本”窗口,然后输入信息,输入完毕后, 再点击“添加+ ”按钮,则提示用户创建成功。点击“查看”按钮则可以看到当前 已有的所有“记事本” 。 28 图 5.8 用户设置“记事本” (3) 闹钟 按照设定的时间,在每周的同一时间提醒用户。上下班闹钟、午睡闹钟、餐饮 闹钟等。直接点选闹钟界面上的各个控件来设置时间,然后输入提示信息,点击 “确定”按钮即可。 29 图 5.9 用户设置“闹钟” (4) 便签 提醒他人或自己。通过点击“新建”打开“新建便签”窗口,然后输入信息, 输入完毕后,再点击“添加+ ”按钮,则提示用户创建成功。点击“查看”按钮则 可以看到当前已有的所有“便签” 。 30 图 5.10 用户设置“便签” (5) 约会 按照用户的设定提醒用户,记录约会的时间、地点、人物等,有会议或者约会 需要在某些时候开始,提前准备。通过点击“新建”打开“新建约会”窗口,然后 输入信息,输入完毕后,再点击“添加+”按钮,则提示用户创建成功。点击“查 看”按钮则可以看到当前已有的所有“约会” ,并且将计时显示该约会的所有内容。 31 图 5.11 用户设置“约会” 5.2 软件后台调试(白盒测试) 5.2.1 音乐播放部分后台调试 音乐播放部分需要处理的内容是最多最复杂的,首先需要保证音乐的正常播放, 其次还要保证歌词的同步播放,再次需要保证播放进度条和声音的与实际播放和音 量的同步。通过断点调试,一步一步往下调试,逐步跟踪各个变量的变化,适时监 控程序的运行,从而很轻松地能够看到异常和错误位置。在这期间进行了大量的调 试工作,尽量通过调试发现程序中的已知错误。 32 5.2.2 常用工具部分后台调试 常用工具主要需要处理的是用户自定义的数据、软件在使用过程中产生的数据 在本地硬盘的存放。需要保证数据的读写完整性,需要保证数据的逻辑处理的正确 性。主要调试界面如下图: 图 5.12 软件调试 33 结 论 酷猪音乐播放器在经过好几个月的设计和开发,终于得到了一个比较粗糙的版 本vision 。这个版本在很多方面还存在诸多漏洞,还需要长时间的改进 和维护。我会努力改进播放器的性能,使它满足大家的多方面的需求。 通过这次毕业设计,我学到了很多。首先是开发技术方面的经验;然后是软件 工程方面的经验;还有就是与人

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论