《基于AS3.0的音乐点播系统的设计与实现毕业论文.doc》由会员分享,可在线阅读,更多相关《基于AS3.0的音乐点播系统的设计与实现毕业论文.doc(41页珍藏版)》请在三一办公上搜索。
1、独 创 声 明本人郑重声明:所呈交的毕业设计(论文),是本人在指导老师的指导下,独立进行研究工作所取得的成果,成果不存在知识产权争议。尽我所知,除文中已经注明引用的内容外,本设计(论文)不含任何其他个人或集体已经发表或撰写过的作品成果。对本文的研究做出重要贡献的个人和集体均已在文中以明确方式标明。本声明的法律后果由本人承担。 作者签名: 二 年 月 日毕业设计(论文)使用授权声明本人完全了解滨州学院关于收集、保存、使用毕业设计(论文)的规定。本人愿意按照学校要求提交学位论文的印刷本和电子版,同意学校保存学位论文的印刷本和电子版,或采用影印、数字化或其它复制手段保存设计(论文);同意学校在不以营
2、利为目的的前提下,建立目录检索与阅览服务系统,公布设计(论文)的部分或全部内容,允许他人依法合理使用。(保密论文在解密后遵守此规定)作者签名: 二 月 日基于AS3.0的音乐点播系统的设计与实现摘 要在多媒体技术高速发展的今天,多媒体播放器出现了多种缺点和毛病,主要表现在内存大量占用和操作复杂繁琐方面。本文针对当今流行音乐播放器的优缺点进行了研究,然后在此基础上进行综合和总结,开发出了一个功能丰富和操作简易的音乐点播系统,该播放器具有低内存占用和绿色无广告的特点,因此具有广阔的市场前景。本音乐点播系统是基于脚本语言ActionScript3.0,利用FlashBuilder4.6设计开发的AI
3、R应用程序。主要利用Actionscript3.0作为后台逻辑处理和功能实现,文中对音乐播放器做了详细的需求分析,并详细介绍了音乐播放器的总体设计,包括音乐播放器的架构设计、功能模块的划分、音乐播放列表文件的设计、常用工具的设计、本地数据存储设计等,然后具体介绍了以上各个部分和功能的具体实现原理和过程,最后再对该音乐点播系统进行了黑盒测试和白盒测试,没有重大的异常和错误,证明其设计方案的可行性和正确性。关键词:多媒体;播放器;人性化 Design and Implementation of Music-on-demand System Based on AS3.0AbstractWith th
4、e 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
5、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
6、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
7、 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 mus
8、ic 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 目 录第一章 绪论11.1 研究的目的和意义11.1.1 研究目的11.1.2 研究意义11.2 国内外研究现状11.2.1 国外研究现状21.2.2 国内研究现状3第二章 AIR开发技术介绍42.1 AIR开发技术介绍42.1.
9、1 开发工具介绍42.1.2容器结构介绍52.2 开发语言62.2.1 开发语言简介62.2.2 开发语言主要功能7第三章 酷猪音乐播放器总体设计83.1总体功能设计83.1.1 软件主要功能设计83.1.2 软件主要功能介绍93.2 软件数据库设计103.2.1 播放列表(xml文件)结构103.2.2 “酷猪工具”数据存储的数据结构设计11第四章 酷猪音乐播放器主要模块实现134.1 音乐播放主要功能实现代码134.1.1 主界面主要源代码134.1.2歌曲播放主要代码144.1.3歌曲播放顺序主要代码154.1.4歌曲搜索主要代码154.2 歌词播放主要功能代码164.2.1 歌词信息显
10、示及播放代码164.3 歌词去除广告信息174.3.1 歌词信息读取主要代码174.3.2 歌词信息广告删除主要代码174.4 本地歌曲扫描184.4.1 本地硬盘歌曲扫描主要代码184.4.2 生成扫描结果(xml文件)主要代码19第五章 软件测试205.1软件基本功能模块测试(黑盒测试)205.1.1 软件前台使用测试205.2 软件后台调试(白盒测试)305.2.1 音乐播放部分后台调试305.2.2 常用工具部分后台调试30结 论32参考文献34谢 辞35第一章 绪论1.1 研究的目的和意义随着Internet的发展,人们的个人计算机上音乐播放软件越来越多,功能越来越丰富,但同时很鸡肋
11、的功能也越来越多,内存占用也越来越大,与其它音乐播放器比较,这一音乐播放器具有功能丰富、占用空间小的特点,它与现有音频资源应用状况紧密结合,既具有很强的直观感,又不失一般性。因此开发制作这一播放器具有备现实意义。1.1.1 研究目的在软件技术迅速发展的同时,个人计算机上安装的软件越来越多,多个软件同时运行,在硬件的消耗上是相当大的,特别是在这种情况下内存(RAM)会成为一种相当紧缺的资源,内存的紧缺对于软件开发来说会限制软件的发展。本课题着重研究利用ActionScript3.0开发音乐播放器,在满足音乐播放的前提下,尽量降低内存占用的方法。1.1.2 研究意义每个软件都极尽所能的展现各种花俏
12、的功能,争奇斗艳的程度让人目不暇接。目前常见的音乐播放器软件各有特色,比如提供词自动匹配下载、歌手相关歌曲推荐、音乐排行榜、小游戏,更有甚者还有团购广告。虽然在外观上有很大的差异,但功能上却大同小异,而且由于强制安装插件的原因而存在着多种缺点和毛病,主要表现在内存大量占用和操作复杂繁琐方面。为了解决现行播放器大量耗用的内存和操作不人性化的问题,本课题设计并实现了播放器的低内存占用和人性化操作。在开辟创建绿色软件和内存节约方面有重要意义。围绕低内存占用这个目标,研究怎么降低多媒体音乐播放器的内存占用,充分体现了节约为本的思想,符合和谐发展的主题。1.2 国内外研究现状随着Internet的商业化
13、的发展,多个网络或者软件公司纷纷推出各种方法来争取用户群,争取市场占有率。在多媒体播放器方面也不例外,多家公司通过捆绑安装或弹窗提示来在某一定程度上强制用户安装其附属的其他软件或注册旗下的账号。一些商家纷纷行动规划开发适应本企业的播放器。目前国内比较流行的音乐播放器有:酷狗、windows media player、QQ音乐盒、酷我音乐盒等。酷狗和windows media player是使用最广泛的多媒体播放器。其中酷狗音乐播放器凭借其丰富的歌曲、歌词和mv资源成为网络上是使用最多的播放器,QQ音乐盒与酷狗类似,但其中还加入了QQ客户端的一些功能,因而也有比较广的客户群。百度音乐盒有网页播放
14、器,强大的音乐搜索功能为播放器提供大量的免费高质量音乐。网络上有不少的研究者热衷于播放器的研究,利用控件或者是MCI接口开发自己的播放器,并且取得了很大的进步,推动了播放器的发展。不过在声音的表现上,国内的播放器远不如Beoplayer和foobar2000专业。1.2.1 国外研究现状由于计算机技术国外先于国内,在音乐播放器方面,国外起步比国内早,而且技术成熟。国外的播放器一直讲究的是实用和技术,多是针对专业人士开发的,因而在操作和使用上不适合大众,在外观方面更不是很注重,很平凡的用户界面,其能体现价值的地方就是音质和对乐音的渲染和还原上,在内核上都是独立开发的,并不是使用已经做好的通用解码
15、内核。比如windows media player,其支持的音乐格式比较少,界面也比较普通,却是浏览器中某些音乐功能不可缺少的部分,其主要是给window系统中的音频相关软件提供软件接口。Bang & Olufsen是丹麦的一家全球顶级数字产品设备提供商,其独特的高贵和品质是他们的产品设计理念,因此其产品一直受到了很多人的追捧和崇拜。Bang & Olufsen出品的音乐播放器Beoplayer被音乐发烧友称为“音质最好的播放器”。播放效果好,对音质有一定的提升作用,放mp3时可以把很多爆音和杂音都修饰掉,Beoplayer可以不用借助硬件设备来提高mp3的听觉效果,声音输出清脆纯净,Beop
16、layer对乐器声的还原更是无与伦比1。但是正是由于功能上的丰富,界面的酷炫,其安装包有70M,比一般的视频播放器还大,其内存占用方面更是居高不下。Beoplayer在人性化方面其中加入了自动扫描和分组的功能,但是Beoplayer不支持歌词显示,使得对于流行歌曲的播放上很不方便。而foobar则也出现类似情况,在所有媒体软件中foobar2000是最专业和最追求完美音质的一种专家级别音乐播放解码器2。foobar2000的定位是专业数字音频播放工具,它更注重技术,所以在使用过程中涉及到了很多的专业数字音频知识,普通的用户对其常常无从下手,这也就限制了其在大众中的传播和普及。1.2.2 国内研
17、究现状随着Internet的商业化的发展,一些商家纷纷行动规划开发适应本企业的播放器。目前国内比较流行的音乐播放器有:酷狗、windows media player、QQ音乐盒、酷我音乐盒等。酷狗和windows media player是使用最广泛的多媒体播放器。其中酷狗音乐播放器凭借其丰富的歌曲、歌词和mv资源成为网络上是使用最多的播放器,QQ音乐盒与酷狗类似,但其中还加入了QQ客户端的一些功能,因而也有比较广的客户群。百度音乐盒有网页播放器,强大的音乐搜索功能为播放器提供大量的免费高质量音乐。网络上有不少的研究者热衷于播放器的研究,利用控件或者是MCI接口开发自己的播放器,并且取得了很大
18、的进步,推动了播放器的发展。不过在声音的表现上,国内的播放器远不如Beoplayer和foobar2000专业。第二章 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
19、 使设计者和开发者更高效地建立 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平台,它是涵盖了支持RI
20、A(Rich Internet Applications 富联网)的开发和部署的一系列技术组合。开发工具Flash Builder 4.6 主界面如下图:图2.1 开发工具界面2.1.2容器结构介绍在FlashBuilder中,所有的组件都逐级嵌套在容器中。Flashbuilder应用就是用容器搭建起来的,组件是在容器中排列的。Application是最外层的容器,在application中嵌入各种容器和界面元素,容器中又可以再嵌套容器。容器中最主要的工作就是管理容器中组建的布局,容器通过多种版面布局方式(比如,绝对布局、相对布局、纵向布局、横向布局等)。通过有效地使用容器,同时恰当地配合运用
21、多个容器,可以对应用程序的外观实现最全面、最彻底、最有效率的控制5。舞台显示对象显示对象的实例显示对象容器显示对象Swf文件主类的实例显示对象容器显示对象显示对象容器图2.2 容器结构的嵌套显示结构2.2 开发语言2.2.1 开发语言简介ActionScript 动作脚本是遵循 ECMAscript第四版 的 Adobe Flash Player 运行时环境的编程语言。它在 Flash 内容和应用程序中实现交互性、数据处理以及其他功能。ActionScript是Flash的脚本语言,与JavaScript相似,ActionScript是一种编程语言,新出的AS3.0使用OOP(面对对象编程),
22、增加更强的报错能力,指定类型也更明确6。MXML是一个可以让你在Adobe Flex中布局用户界面组件的一种XML语言。你也可以使用MXML声明来定义程序中的非可视化组件,比如 对服务器端数据源的访问以及用户界面组件和数据源之间的数据绑定。MXML标签与ActionScript类或者类中的属性是相对应的。当你编译你的Flex应用程序的时候,Flex解析你的MXML标签并且生成相应的ActionScript类。然后这些ActionScript类会被编译成SWF字节码存储到一个SWF文件中7。2.2.2 开发语言主要功能ActionScript 3.0 提供了可靠的编程模型,具备面向对象编程的基本
23、知识的开发人员对此模型会感到似曾相识。ActionScript 3.0 中的一些主要功能包括:一个新增的ActionScript 虚拟机,称为AVM2,它使用全新的字节码指令集,可使性能显著提高;一个更为先进的编译器代码库,它更为严格地遵循ECMAScript (ECMA 262) 标准,并且相对于早期的编译器版本,可执行更深入的优化;一个扩展并改进的应用程序编程接口 (API),拥有对对象的低级控制和真正意义上的面向对象的模型;一种基于即将发布的ECMAScript (ECMA-262) 第4版草案语言规范的核心语言。一个基于ECMAScript for XML (E4X) 规范(ECMA-
24、357 第2版)的XML API。E4X是ECMAScript的一种语言扩展,它将XML添加为语言的本机数据类型;一个基于文档对象模型 (DOM)第3级事件规范的事件模型8。第三章 酷猪音乐播放器总体设计3.1总体功能设计由于本软件的主要的使用者是滨州学院计算机科学技术系-计算机科学与技术专业的师生,考虑到使用人的计算机硬件设备和软件设备相对比较先进、学生的计算机能力水平比较高超,所以本软件的一些功能就不再在帮助中展示,在算法上尽量采用了中庸的算法。酷猪音乐播放器功能结构如下图:“酷猪”音乐播放器打开暂停/播放停止上一曲下一曲音量+常用功能附加功能音量-消除广告创建列表酷猪工具记事本闹钟便签提
25、醒约会图3.1 酷猪播放器主要功能3.1.1 软件主要功能设计酷猪音乐播放器功能设计如下图:打开播放器音乐播放部分常用工具部分本地音乐扫描本地歌词扫描设置、编辑、添加、删除工具提示(桌面右下角弹窗显示)歌曲播放歌词同步播放歌词去广告图3.2 酷猪播放器主要功能设计3.1.2 软件主要功能介绍音乐播放部分:对于第一次使用该播放器的用户,首先需要扫描本地硬盘的音乐文件,生成播放列表文件。然后播放器自动读取该列表文件,将列表中的所有音乐文件的文件名显示在播放器的列表窗口中,然后通过双击播放列表中的任意一首音乐,开始播放音乐。此时控制音乐的各个控制部件开始生效。歌词播放部分:在播放音乐的同时,播放器查
26、找与音乐文件相同目录下的且文件名相同的歌词文件,如果本地存有与该音乐文件文件名相同的歌词文件(.lrc文件),则此时歌词是同步播放的,否则歌词窗口显示“酷猪音乐,只为你我传播好音乐”。酷猪工具部分:用户通过点击打开不同的小工具,然后输入具体的时间、内容等参数,然后点击“添加+”按钮。如果该小工具需要进行倒计时操作,系统将计算该添加项在所有选项中顺序,然后对所有选项进行排序,将排序最靠前的选项的参数传递到计时器中,计时器开始倒计时。当剩余时间为0时,桌面右下角将弹出提示框。比如用户设置了“提醒”,内容是“今天18:30需要开会”,这时倒计时器将获取系统中所有“提醒”,如果系统中有更靠前的提醒,排
27、序后,就这个“提醒”先存储在系统中等候调用,如果系统中没有更靠前的提醒,则通过计算现在时刻与“提醒时间”的时间差来设置计时器,然后再界面上倒计时。当到会议时间18:30时,桌面右下角弹出该“提醒 ”的内容,并提醒用户时间到。3.2 软件数据库设计3.2.1 播放列表(xml文件)结构可扩展标记语言 (Extensible Markup Language, XML) ,用于标记电子文件使其具有结构性的标记语言,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。 XML是标准通用标记语言 (SGML) 的子集,非常适合 Web 传输。XML 提供统一的方法来描述和交换
28、独立于应用程序或供应商的结构化数据9。由于本软件是一个完全脱离网络的本地音乐播放器,故没有使用庞大的数据库,而是采用了xml和普通的类似文本文件的形式存储产生的数据。因为xml文件已有固定的国际标准,在其固有标准的基础上,本播放器对xml文件存储结构进行了多种方案设计,最终选择了一种分散的、简约的内部存储结构,让其更适合在本播放器中使用。xml文件主节点(一个)子节点n子节点1子节点2子节点3文件名文件路径添加时间xml文件存储结构如下图:图3.3 酷猪音乐播放器xml文件存储结构图3.4 酷猪音乐播放器播放列表xml文件存储结构3.2.2 “酷猪工具”数据存储的数据结构设计在本地种存放播放器
29、中产生的中间数据,比如用户设置的“提醒”、“闹钟”等的数据,以及用户对播放器的自定义设置。因为没有网络的支持,故这些数据只能存储在用户的本地硬盘中。本播放器为方便数据的使用,对数据的存储结构进行了比较详细的分析和设计(各个实体类内容太多,现列举“记事本”和“闹钟”E-R结构如下)。记事本提醒时间提醒提醒内容提醒备注提醒创建时间闹钟响铃时间每周响铃日期是否生效内容图3.5 酷猪音乐播放器“记事本”和“闹钟”E-R图实体类对象 (包含有多个数据字段)实体类对象的集合(ArrayList 或 Array),包含有多个实体类对象将对象序列化(AMF),存储为数据文件(kztd文件,KuZhuToolD
30、ata 文件 ),方便下次读取和操作说明:如“提醒”的实体类为Warning00,它的实例化对象有多个,这些实例化对象存储在tempAL(ArrayList)中,然后再对tempAL进行封转,放在WarningAL对象中,最后将WarningAl对象序列化后存在数据文件warningDat.kztd中。封装实体类对象的集合,添加便于操作的方法注:AMF(是Action Message Format的缩写) 是在flash和flex中remoting的一种方式格式。不但能节省存储空间,而且格式化后的数据便于读取和管理。闹钟的存储,不是采用的ArrayList,而是采用的Array定长存储。读取数
31、据文件(kztd文件,文件路径已经固定在D:/kuku/tool)读取数据文件中封装的实体类对象的集合(ArrayList 或 Array),包含有多个实体类对象。实体类对象 (包含有多个数据字段)解封装实体类对象的集合显示或操作实体类对象 获取实体类对象数据数据结构及存储结构如下:图3.6酷猪音乐播放器数据结构及存储结构第四章 酷猪音乐播放器主要模块实现4.1 音乐播放主要功能实现代码4.1.1 主界面主要源代码主界面的代码主要用来实现界面控件布局,搭建功能框架,一下详细列出了所有控件的类型和id,以及相关的方法。代码举例如下:以上代码说明如下:MXML文件不能命名为“WindowedApp
32、lication”,“WindowedApplication”是主程序文件所采用的默认标记,不可以再用,也不能和程序中任一组件的id值同名10。xmlns:fx= xmlns: s=library:/ xmlns:mx=library:/ library:/ height=636 autoLayout=true表示程序窗口的大小和布局方式。creationComplete=creatComplete()表示在程序窗口创建完成后触发的方法为creatComplete()。fontSize=12表示程序中的字体大小,表示在这个窗口或界面中的字体大小为12磅。xmlns:components=pon
33、ents.*表示用户自定义控件空间。代码举例如下:标签中的 s前缀是一个命名空间。它是通过在Application标签中使用一个独一无二的URL来声明的。s前缀把在s命名空间中的每个组件映射到它的完全限定类名。这就是为什么Flash Builder编译器可以在找到与s命名空间中的MXML标签相对应的ActionScript类11。也就是说,这里的实际上对应的是一个名字为id对应值的对象,比如以上代码表示s命名空间下的一个HSlider对象。这种类是预定义的,不需要用户再次自定义,而且这种类我们不需要通过定义变量的方式来初始化。控件的相关参数必须写在以上代码表示一个HSlider控件, id表示
34、控件被调用是的标识;x、y表示该控件在舞台上的坐标;change表示在该控件的值改变时应该触发的方法;maximum表示该控件的最大值;minimum表示该控件的最小值;stepSize表示每次拖动滑块时的步长值;toolTip表示该控件的提示信息;value表示该控件的初始值12。在本软件中所有的可视化控件就是通过这种方式进行界面布局和控制的。可能该控件还有更多的选项,这里不一一列举。这种可视化的编程环境使编码简单明了,使用方便。4.1.2歌曲播放主要代码根据歌曲文件名获取歌曲文件(.MP3)文件存在生成和获取歌曲信息变量文件不存在处理显示歌曲名、歌曲总时长、播放进度,同步显示歌词。歌曲用户
35、控制播放完,下一首歌曲图4.1 酷猪音乐歌曲播放流程打开播放器后首先读取播放列表文件:playList.xml,如果文件存在,读取其中内容作为播放列表显示的内容,如果文件不存在,则提示用户创建列表。读取到列表信息后,逐条分析数据,并根据文件路径获取音乐文件,并播放获取到的音乐文件。主要方法及功能如下:/ 播放/暂停按钮protected function play_pause_Btn_clickHandler(event:MouseEvent)/拖放进度条protected function playingProcess_changeHandler(event:Event)/双击播放列表中的音
36、乐文件protected function playerList_change_Handler(event:MouseEvent)4.1.3歌曲播放顺序主要代码通过控制下一首音乐在播放器列表中的位置,然后达到“全部循环”、“顺序循环”、“单曲播放”。向获取列表位置的函数传递一个参数,分别表示:“全部循环”、“顺序循环”、“单曲播放”,然后该参数返回一个下标志,播放器根据该下标支播放音乐。/播放顺序protected function playOrder_DDList_changeHandler(event:IndexChangeEvent)/下一首音乐的位置protected function
37、 getNextItem(order:int)4.1.4歌曲搜索主要代码通过模糊查找,正则表达式匹配的方式,查找列表中的所有音乐,如果包含关键字信息的条目存在,则选中该条目,用户点击“播放”按钮,将播放该音乐。点击“搜索”按钮,将出现搜索输入框,输入将要搜索的关键字,然后再点击“搜索”按钮,如果搜索框中有关键字,将进行搜索匹配,否则将隐藏搜索输入框。/搜索音乐protected function search_Btn_clickHandler(event:MouseEvent)4.2 歌词播放主要功能代码有人喜欢一边听音乐,一边跟着音乐的节奏哼唱,或者可能会大声地唱出来。为了提供边听边唱的方便
38、,本音乐播放器自带歌词播放功能。相当于提供了一个简单的卡拉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 getNext
39、Lrc(event:Event)4.3 歌词去除广告信息在歌词文件中,经常会出现很多广告信息,比如某人的qq号码、电话,甚至公司的广告,这些信息严重影响我们欣赏音乐的心情,故本音乐播放器对于这些信息进行了简单的处理,通过扫描歌曲的所有歌词信息,删除了这些垃圾信息,填上本音乐播放器的“宗旨”“酷猪音乐,只为你我传播好音乐”。而且支持任意目录的删除广告信息,很方便的为自己的mp3、手机、mp4等电子产品中的歌词去除广告信息。为你提供一个绿色的视听环境。4.3.1 歌词信息读取主要代码根据选中的文件夹的路径,读取该文件夹下的所有歌词文件(lrc)文件,然后将文件内容一句一句进行“对比”,如出现广告等
40、垃圾信息,则删除该行歌词,并填充有用信息,直到所有歌词信息对比完毕。/歌词信息读取的方法protected function selected_Handler(event:Event)4.3.2 歌词信息广告删除主要代码歌词信息广告删除原理:根据歌曲文件名获取歌词文件(.lrc)文件存在按GBK编码读取整个文件,将内容存进一个字符串。文件不存在处理处理该行的内容(查找广告,如果存在则替换或删除)通过查找字符串中的换行符,逐行获取内容。将该行内容替换字符串中内容处理完,按GBK编码写回文件图4.3 酷猪音乐删除广告信息流程4.4 本地歌曲扫描用户往往会将音乐和歌词存储在本地硬盘的一个文件夹中,以
41、便于管理,本音乐播放器支持扫描本地硬盘文件夹的功能,能一次性将一个文件夹的内容扫描生成一个列表。4.4.1 本地硬盘歌曲扫描主要代码扫描用户指定的文件夹,将文件夹下的所有MP3文件的文件名和文件路径读取出来,按照一定格式写入一个string,然后将改string按照utf-8的编码方式写成一个xml文件。/扫描用户指定的文件夹protected function fileScan_Btn_clickHandler(event:MouseEvent)protected function showFile(event:Event)4.4.2 生成扫描结果(xml文件)主要代码Xml文件生成原理:创
42、建一个字符串,用来存放xml文件内容扫描用户选择的目录,将获取到的MP3文件信息转码后存入字符串。处理字符串(转码为UTF-8编码)。扫描添加完毕将字符串按UTF-8编码存入文件用户选择目录图4.4 酷猪音乐xml文件生成原理第五章 软件测试5.1软件基本功能模块测试(黑盒测试)5.1.1 软件前台使用测试用户打开播放器后,在显示播放器主界面的同时将播放播放器的启动音乐,在桌面上出现以下界面,说明启动成功。软件基本功能模块如图5.1示。图5.1 软件功能模块导航点击软件界面的各个按钮进行以下测试:5.1.1.1 音乐播放部分:(1) 音乐扫描对于存在硬盘上的mp3文件夹,本播放器可以一次性添加
43、进入播放列表。在打开播放器后,只需要点击播放器界面左下侧的“扫描歌曲”按钮,然后在弹出的对话框中选择正确的歌曲目录,点击确定后,歌曲扫描将自动进行,扫描完成后将弹出警告,然后将扫描得到的歌曲以列表的形式显示在播放列表中。图5.2 扫描前(播放列表为空)图5.3 扫描后(播放列表添加了内容)本软件产生成的播放列表文件是一个xml文件,文件路径为“D:kukuplaylist”,目前还不支持多列表。列表文件及路径如下图:图5.4 磁盘上生成了播放列表文件(下次打开播放器就不需要再次执行扫描操作)(2) 音乐操作(上/下一曲、暂停/播放、停止、音量调节、进度条拖动)双击播放列表中的任意一歌曲,歌曲将
44、开始播放,同时歌曲的控制控件开始生效。测试结果下图所示。图5.5 音乐播放截图(3) 歌词处理在播放歌曲的同时,歌词会自动跟随歌曲同步播放。在点击界面上的歌词控制控件后,歌词将关闭,再次点击歌词控制控件,歌词将再次打开。5.1.1.2 常用工具部分:当今很多人已经习惯每天坐在电脑前办公,每一天的工作都是围绕着电脑转,为了提供这些人方便,本播放器集成了一些办公上可能有用的功能。本软件的常用工具所产生的数据都存放在“D:kukutool”目录下,各种kztd(KuZhu Tool Data)文件分别表示不同的工具产生的数据。文件如下图:图5.6 播放器数据文件(1) 提醒为自己的时间安排设置一个提醒,用户可以同时设置多个提醒,多个提醒互不干扰。当提醒时间到达设置的时间时,播放器将通过右下角弹窗提醒用户需要处理某件事,然后播放器将删除这个提醒。通过点击“新建”打开“新建提醒”窗口,然后输入信息,输入完毕后,再点击“添加+”按钮,则提示用户创建成功。点击“查看”按钮则可以看到当前已有的所有“提醒”,并且将计时显示该提醒的所有