《音乐播放器的设计与实现_毕业论文.doc》由会员分享,可在线阅读,更多相关《音乐播放器的设计与实现_毕业论文.doc(38页珍藏版)》请在三一文库上搜索。
1、毕业设计说明书 学生姓名学生姓名学学 号号 学院学院 计算机科学与技术学院 专专 业业计算机科学与技术(软件工程) 题题 目目音乐播放器的设计与实现 指导教师指导教师 (姓 名) (专业技术职称/学位) 淮阴师范学院毕业论文(设计) - 1 - 摘摘 要要: : 随着生活水平的提高,娱乐已成为非常主流的话题,人们不仅需要通过音乐陶冶 情操,而且越来越多的人倾向于使用音乐、视频等娱乐和放松自己,这大大促进了媒体 软件的发展.本文旨在介绍研究常用数字音频编码和解码的相关知识,并结合 VS2008 编 写多功能音乐播放器,了解音乐播放器功能的实现,掌握开发音乐播放器所需的相关知 识,采用了面向对象软
2、件工程方法,其开发主要包括应用程序界面设计和后台代码运行 两个方面,实现了多功能音乐播放器在计算机上的应用,可以在很大程度上满足用户的 需求.该系统主要具备:音乐播放控制、音乐文件控制、音量控制、下载控制、歌词控制、 进度控制、音乐剪辑等功能模块。 关键字:关键字:音乐播放器,音频编码格式,TechSmith Screen Capture Codec,FFmpeg ,C#,Visual Studio 2008 淮阴师范学院毕业论文(设计) - 2 - Abstract:With the improvement of standards of living, entertainment has
3、become very mainstream topics, it is required not only by music, edifying, and as more and more people tend to use music, video and other entertainment and relax, which greatly promoted the development of media software. This article aims to introduce the research knowledge of common digital audio e
4、ncoding and decoding, and in conjunction with VS2008 prepared multifunctional music player, understand the functions of the music player to acquire related knowledge needed to develop music player, object-oriented software engineering methods are used, their development includes the application inte
5、rface design and code to run in the background tracks to realize multifunctional music player application on your computer, you can to a large extent, meet the needs of users. The system mainly includes: a music player, music file control, volume control, control, control, schedule control of lyrics
6、, music editing function module. Keywords: music player, audio coding format, techsmith screen capture codec, c#, visual studio 2008 淮阴师范学院毕业论文(设计) - 3 - 目目 录录 1 前言 - 4 - 1.1 选题的背景及意义 .- 4 - 1.2 网络流行音乐播放器简介 .- 4 - 2 系统相关技术及开发平台介绍 .- 5 - 2.1 开发应用技术介绍 .- 5 - 2.2 开发及运行坏境 .- 7 - 3 系统的分析 - 8 - 3.1 可行性分析
7、.- 8 - 3.2 常见的几种音频格式及其特点 .- 9 - 3.3 需求分析 .- 10 - 4 系统设计 .- 12 - 4.1 系统概要设计 .- 12 - 4.2 系统功能设计及描述 .- 12 - 5 系统功能实现 .- 14 - 5.1 歌曲添加模块 .- 15 - 5.2 歌曲列表模块 .- 19 - 5.3 播放控制模块 .- 20 - 5.4 音量控制模块 .- 23 - 5.5 进度控制模块 .- 24 - 5.6 滚动字幕模块 .- 24 - 5.7 歌曲下载模块 .- 29 - 5.8 歌曲剪辑模块 .- 31 - 结 论 - 35 - 参 考 文 献 - 36 -
8、致 谢 - 37 - 1 1 前言前言 淮阴师范学院毕业论文(设计) - 4 - 1.11.1 选题的背景及意义选题的背景及意义 音乐是情感的艺术,美妙动听的音乐来源于情感,又潜移默化地影响情感,让我们 进入瑰丽多彩的虚化与现实的意境之中。向上追溯百年或千年,直至最原始的音乐诞生 之初,我相信音乐是为了倾诉而不是表现,是自然的流露而不是技巧的夸张,是自我的 沉醉而不是别人的掌声。因为爱与感动,因为生命的圆满与缺憾,因为思想的灵动与创 造。所以音乐不单在乐谱上,更在我们的心中。 众所周知任何格式的音乐都要通过音乐播放软件播放,那么音乐播放软件是通过什 么样的原理实现音乐的播放的呢?音乐播放器就是
9、音频解码器的可视化操作界面,其实 质是针对各种音频编码格式的解码器。例如 APE 格式调用的是 Monkeys Audio 解码器, FLAC 格式调用的是 FLAC 解码器,MP3 调用的是 lame 解码器。大部分音乐播放器都支持 多种音乐格式的文件,这是因为这些播放器将不同的音频解码器打包起来,并制作统一 的播放界面,从而让使用者能够方便地播放和聆听各种音乐。 伴随着改革开放人们的生活水平普遍提高如今音乐已成为越来越多人的心灵寄托。 随着因特网在我国的普及随之而来的是各式各样的播放器软件。 尽管未来的音乐播放器将具备各种丰富多彩的功能,但作为一款多媒体软件,音频 应用才是最基本的,也是最
10、能决定获取用户数量的因素。 基于上述分析音质高,外形美观,小巧且功能强大是未来播放器发展的主流趋势。 作为一个音乐爱好者兼软件工程专业的一员若能编写一款小巧功能强大的音乐播放器无 疑是一件很有成就感的事情。 1.21.2 网络流行音乐播放器简介网络流行音乐播放器简介 本小节举例介绍目前网络上流行的几款音乐播放器,比如国产千千静听,酷狗音乐等。 比较分析了它们各自特有的功能,此外还集中介绍了常见的几种编码格式以及它们各自 的特点。 1.2.11.2.1 千千静听千千静听 千千静听是一款专为用户定制的全新一代的免费听歌下载音乐播放器软件。提供百万 首歌曲免费试听下载,拥有最新、最流行的歌曲,提供第
11、一时间音乐资讯;超高品质 (320kbps)的音乐歌曲下载,给耳朵更优质的享受;超炫的智能语音搜歌功能让听歌更加 快捷;免费的手机铃声歌曲下载;轻松拖拽歌词,保持歌词同步,支持边听边唱;支持 在线播放下载;流量限额提醒功能。 软件特色:1、高精度音质,完美还原听觉 ;2、在线自动下载歌词,卡拉 OK 式同 淮阴师范学院毕业论文(设计) - 5 - 步显示 ;3、软件小、运行快、支持众多插件,自由编辑歌词,由你做主;4、自由转换 MP3、WMA,APE,WAV 等多种音频格式 ,批量修改歌曲标签信息;5、个性化皮肤, 多种视觉效果享受永远免费。 1.2.21.2.2 酷狗音乐酷狗音乐 酷狗音乐是
12、中国领先的数字音乐交互服务提供商,互联网技术创新的领军企业,致力 于为互联网用户和数字音乐产业发展提供最佳的解决方案,公司的使命是成为亚太地区 最大的数字音乐销售推广企业。自公司创建以来,一直在数字音乐发展上大胆尝试,先 后与几十家唱片公司、版权管理机构合作探索发展,积累了数万首数字音乐版权,并在 推动广范围的跨行业、跨平台合作上做出努力,在艰巨的全球音乐数字化进程中做出自 身的贡献。全球最受欢迎的免费中文播放软件,流行音乐搜索平台。 软件特色: 1、迷你界面、界面更酷、绚丽流行;保持了 Windows Vista 和 XP 下的 完美表现,让人耳目一新;2、卡拉 OK 酷狗独创“卡拉 OK”
13、歌词显示,多种模式,边 听边唱,让你听歌更好玩;3、支持本地音乐播放完美音质,支持所有的音频文件,本地 文件拖放,同时支持网络高速下载和本地播放;4、超强搜索和下载优化歌曲搜索引擎, 提高搜索准确度;智能化节约带宽,可关闭网络功能;5、流行音乐资讯酷狗榜单家族、 狗友推荐、酷吧、狗窝,最新流行音乐一网打尽,好听的音乐来“找”你;6、个性化手 机炫铃 DIY,让拥有张扬个性的铃声 7、音频格式我选择我的歌曲我制作,音质音效我决 定 8、收音机动感音乐识别体验精选多家电台,收听全球风云变化,更能识别电台中的音 乐。 2 2系统相关技术及开发平台介绍系统相关技术及开发平台介绍 本系统是采用面向对象的
14、软件开发方法,基于微软的 Visual Studio .Net 开发平台,以 C#作为本系统的开发语言实现音乐播放器预定的需求功能。 2.12.1 开发应用技术介绍开发应用技术介绍 2.1.12.1.1 TechSmithTechSmith ScreenScreen CaptureCapture CodecCodec 简介简介 TechSmith Screen Capture Codec 是 TechSmith 公司开发的 Camtasia Studio 的一个组件, 用于压缩 Camtasia Recorder 中的视频文件,最大的优点是可以保证图像的质量,截取的 屏幕经过多次压缩,还能保证
15、高质量。 比传统的压缩方式相比,优势十分明显。 Camtasia Studio 是 TechSmith 旗下一款专门录制屏幕动作的工具,无论在何种颜色模 式下它都能轻松地对屏幕动作进行记录,包括声音、图像、鼠标的移动轨迹等。此外, 它还能够对音频片段进行编辑、压缩、剪接从而实现多种音效的播放。它还能输出包括 淮阴师范学院毕业论文(设计) - 6 - Flash(SWF/FLV)、AVI、WMV、M4V、CAMV、MOV、RM、GIF 动画等多种常见格式, 是制作视频演示的绝佳工具。其实 Camtasia Studio 已不仅仅是一个录屏工具了,它包括 了 5 个组件:Camtasia 录像器、
16、菜单制作器、音频编辑器、剧场及播放器。 本播放器在运行之前需要安装 TechSmith Screen Capture Codec 组件,此组件会和系统 一起打包发行,用户也可以自己从网上下载更高版本的组件,只有安装此组件才能实现 播放器中的歌词剪切功能。 2.1.22.1.2 FFmpegFFmpeg 简介简介 FFmpeg 在 Linux 平台下开发,但它同样也可以在其它操作系统环境中编译运行,包 括 Windows、Mac OS X 等。这个项目最早由 Fabrice Bellard 发起,现在由 Michael Niedermayer 维护。许多 FFmpeg 的开发人员都来自 MPla
17、yer 项目,而且当前 FFmpeg 也 是放在 MPlayer 项目组的服务器上。项目的名称来自 MPEG 视频编码标准,前面的“FF“ 代表“Fast Forward“。使用本播放器如果要对 flv 格式的文件进行播放则要安装 FFmpeg。 2.1.32.1.3 VisualVisual StudioStudio .Net.Net 集成开发环境简介集成开发环境简介 .NET 平台为创建新一代分布式 Web 应用提供了所有工具和技术(表示技术、构件技 术和数据库技术) 。.NET 平台支持标准的 Internet 协议,包括 HTTP(超文本传输协议) 、 XML(可扩展标记语言)和 SO
18、AP(简单对象访问协议)等,从而实现了异构系统间应 用程序的集成和通信,即用户和供应商可将在此平台上开发的产品和服务无缝地嵌入自 身的业务进程和日常活动的信息架构中。 .NET 平台建立在开放系统结构基础之上,集 Microsoft 在软件领域的主要技术成就于 一身。.NET 平台包括一下 4 种核心技术:.NET Framework、.NET 企业服务器、构件模块 服务和 Visual Studio .NET。 .NET Framework 是.NET 平台核心中的核心,它为.NET 平台下应用程序的运行提供 基本框架,如果把 Windows 操作系统比作一幢摩天大厦的地基,那么.NET F
19、ramework 就 是摩天大厦中由钢筋和混凝土搭成的框架。 .NET 企业服务器是 Microsoft 为企事业单位提供的技术服务中的一部分,它包括 Microsoft BizTalk Server、Microsoft Commerce Server、Host Integration Server、Exchange Server、SQL Server 等技术的开发工具包。 构建模块服务主要是 Microsoft 提供的 COM+组件服务和 XML Web 服务技术,利用 构建模块服务开发应用程序模块,可以迅速地组装一个功能完备的软件。 Visual Studio .NET 是.NET 平台的
20、主要开发工具,由于.NET 平台是建立在开放系统结 淮阴师范学院毕业论文(设计) - 7 - 构基础之上的,因此应用程序开发人员也可以使用其它开发工具。 2.1.42.1.4 C#C#语言简介语言简介 C#(#原为音乐标记,读 Sharp)是一种面向对象的编程语言,主要用于开发可以运行在. NET 平台上的应用程序。C#语言是微软公司开发的基于.NET Framework 的一种编程语言, 它继承了 C/C+优良传统,又借鉴了 Java 的很多特点。微软对 C#的定义是:“C#是从 C 和 C+派生出来的一种简单、现代、面向对象和类型安全的编程语言。C#主要是从 C/C+编程语言家族移植过来的
21、,C 和 C+的程序员能够很快熟悉它。C#试图结合 Visual Basic 的快速开发能力和 C+的强大灵活的能力。 ”2 C#是 2000 年 6 月微软公司发布的一种全新编程语言,是由 Anders Hejlsberg 和他的微 软开发团队所设计,具体如下特点: 通用,支持跨平台。C#程序的客户端可以运行在不同类型的客户端上,如 PDA、手 机等 PC 装置。 简单,主要体现在垃圾收集、指代等特性上。垃圾收集机制将减轻开发人员对内存的 管理负担,而指代功能更是可以让开发者不经过内部类就调用函数。利用 C#的这些 功能,可以使开发者通过较少的代码来实现更强大的应用程序,并且能够更好地避免
22、错误发生,从而缩短了应用系统的开发周期。 面向对象设计,C#具有封装、继承和多态等面向对象程序语言的特征。 与 Web 应用紧密的结合,C#支持绝大多数的 Web 标准,如 HTML、XML、SOAP 等。 这是 C#最大的特点,使用它可以轻松开发各种企业级应用平台。 安全性机制,消除软件开发中常见错误(如语法错误) ,.NET 提供的垃圾回收器能够 帮助开发者有效的管理内存资源。 兼容性,C#遵循.NET 的公共语言规范(CLS) ,能够保证与其它语言开发组件兼容。 灵活的版本处理技术,C#在语言本身内置了版本控制功能,开发人员可以更加容易地 开发和维护。 C#提供了完善的错误和异常触发机制
23、。 2.22.2 开发及运行坏境开发及运行坏境 硬件平台: CPU 奔腾双核 (主频 2.0GHz) 内存 1G 32 位 PC 机 淮阴师范学院毕业论文(设计) - 8 - 160G 硬盘 软件平台: 操作系统:Windows XP Win7Win8 开发工具:Visual Studio 2008。 本软件占用系统空间小,能满足用户对常见音频格式文件的播放要求,还具有歌曲、歌 词下载等功能,界面美观交互性好,易于用户理解操作,且不依赖于其它软件,消耗资 源少易维护,程序有较好的健壮性和正确性。运行该软件所需的坏境配置不高,能满足 绝大多数用户的需求。 3 3 系统的分析系统的分析 3.13.
24、1 可行性分析可行性分析 可行性研究(feasibility study)的目的,是弄清楚待开发的项目是不是可能实现和值得进 行,通常由系统分析员完成,并需写出可行性论证报告。如结论认为可行,即可制定项 目实施计划,同时开始软件开发;如结论认为不可行,则应提出终止该项目的建议。可 行性论证其实是在高层次上进行的一次大大简化了的需求分析与设计。但它的目的不是 去解决用户提出的问题,仅是确定这项开发是否值得进行,分析它存在哪些风险。换句 话来说,在投入大量精力前研究成功的可能性,减小可能出现的风险。即使研究的结论 是不值得进行,所花的精力也并不浪费,因为它避免了一次更大的浪费。下面我们将根 据本系
25、统的特点具体描述以下可行性分析。3 3.1.13.1.1 经济可行性经济可行性 开发一个基于计算机的系统主要是为了获取较好的经济效益和社会效益。因此对待开 发系统的经济可行性论证就成为可行性研究的重要内容。成本-效益分析可用于评估系统 的经济合理性,给出系统开发的成本估算,并将估算的成本与获得的利润进行比对,从 经济的角度论证待开发系统是否可行。一般来说,基于计算机系统的成本主要由 4 部分 组成: 1)购置并安装软硬件及有关设备的费用。 2)系统开发费用。 3)系统安装、运行和维护费用。 4)人员培训费用。 5)结合毕业设计的整个开发过程可知开发音乐播放器所需的全部软件平台都是免费的, 所以
26、在经济上是完全可行的。 淮阴师范学院毕业论文(设计) - 9 - 3.1.23.1.2 技术可行性技术可行性 技术可行性是可行性研究的关键内容。由于系统分析和定义过程与系统技术可行性评 估过程同时进行,此时系统的功能、性能和目标的不确定性会给技术可行性论证带来许 多困难。因此,技术可行性研究往往是系统开发过程中难度最大的工作。该音乐播放器 是用 C#语音开发的,调试比较简单,所需的计算机硬件配置要求不高,一般 PC 机完全 能满足开发要求。软件方面:基于微软.net 开发平台使用 C#面向对象的编程语音,它开 发速度快,简单易用,技术成熟,软件也容易从网上获得,完全能满足开发需求。 3.1.3
27、3.1.3 法理可行性法理可行性 法律可行性主要研究新系统的开发和使用是否会侵犯他人权益,是否触犯了国家的法 律法规。本次的毕业设计是由本人独立完成,开发的系统不会侵犯任何人的权益,所用 的软件都是通过合法途径获取,因此完全符合法律法规。 综上所述,本系统的开发从经济上、技术上、法律上都是完全可行的。 3.23.2 常见的几种音频格式及其特点常见的几种音频格式及其特点 MP3MP3 格式:格式:MP3 的全称是 Moving Picture Experts Group Audio Layer 。MP3 是 Fraunhofer-IIS 研究所的杰出成果。在 MP3 出现前,以有损方式进行音频编
28、码最好的效果 能够压缩到 4:1。而强大的 MP3 可以实现 12:1 的高压缩比,正是因为这种性能的巨大提 升,并且在实现高压缩比的同时还能够保持较好的音质,所以使得 MP3 迅速地流行起来。 MP3 是世界上第一个实用化的有损压缩编码方案,几乎所有的播放软件都支持它,也曾 今产生了许多第三方的编码工具。MP3 编码质量分为:固定码率(CBR),平均码率(ABR) 和动态码率(VBR)。4 特点:音质好,压缩比比较高,被大量软件和硬件支持,应用广泛。 WMAWMA 格式:格式:WMA 就是 Windows Media Audio 编码后的文件,它是微软公司推出的 与 MP3 格式齐名的一种新
29、的音乐格式。WMA 在压缩比和音质方面都超过了 MP3,更是 远胜于 RA(Real Audio),即使在较低的采样频率下也能产生较好的音质。WMA 针对的不 是单机市场,而是网络!竞争对手就是网络媒体市场中著名的 Real Networks。WMA 格 式有非常高的压缩率,一般为 1:18,因此它的文件所占空间比相应的 MP3 文件少一半。 这是通过提高音质、减少数据流量的方法来实现更高的压缩率的。此外它还有很强的防 盗版功能。 特点:低码率下的音质表现难有对手。4 WAVWAV 格式:格式:WAV 是微软 Windows 系统本身自带的音频格式,因为 Windows 系统的 淮阴师范学院毕
30、业论文(设计) - 10 - 普及性,此格式已经成了当前最主流的音频格式之一。WAV 文件里面存放的每一块数据 都有自己独立的标识,通过这些标识可以告诉用户究竟是什么数据。WAV 格式的设计非 常灵活,该格式本身与任何媒体数据都不冲突,只要有软件支持,我们甚至可以在 WAV 格式里面存放图像。在 Windows 平台上,通过 ACM 结构及相应的驱动程序,例如 CODEC 编码/解码器,可以在 WAV 文件中存放超过 20 种的压缩格式,比如 ADPCM、GSM、CCITT G.711、G.723 和 MP3 等。4 特点:音质非常好,被大量软件所支持。 RARA 格式格式:RA 格式是 Re
31、al Networks 公司所开发的一种新型流式音频 Real Audio 文件 格式。这是网上接触得非常多的一种格式,大部分音乐网站的在线试听都采用了 Real Audio,这种格式完全针对的就是网络上的媒体市场,支持非常丰富的功能。最大的优点 就是这种格式可以根据听众的带宽来控制自己的码率,在保证流畅的前提下尽可能提高 音质。4 特点:码率可控,支持多种音频编码,可边读边放。 3.33.3 需求分析需求分析 软件需求是指用户对目标软件系统在功能、性能、行为、设计约束等方面的期望。需 求分析就是通过对应用问题及其坏境的分析与理解采用一系列的分析方法和技术将用户 的需求逐步精确化、完全化、一致
32、化,最终形成需求规模说明文档的过程。本节将从不 同的角度描述系统的需求。 3.3.13.3.1 播放器的基本控制需求播放器的基本控制需求 在着手开发系统之前首先要明确该系统应该实现的一些最基本的功能,然后逐步细化, 为每个功能创建一个模块,再对各个模块进行开发。通过分析我们得出一款音乐播放器 的基本控制如图 3-1 所示: 淮阴师范学院毕业论文(设计) - 11 - 歌曲下载 歌曲添加 播放 暂停 进度控制 上一曲 下一曲 音量控制 歌词显示 图 3-1 播放器基本控制图 3.3.23.3.2 功能需求功能需求 功能需求规定开发人员必须在产品中实现的软件功能,用户利用这些功能来完成任务, 满足
33、业务需求。功能需求有时也被称作行为需求 (behavioral requirement) ,因为习惯上 总是用“应该”对其进行描述。功能需求描述是开发人员需要实现什么。功能需求定义 一个软件系统或组件的功能,也是一个系统需提供的功能及服务。功能可以用一组输入、 行为及输出的组合来表示。功能需求可以是计算、技术细节、数据处理或其他说明系统 希望达成功能的内容。功能需求会以非功能性需求(或是质量需求)为其基础。 结合音乐播放器所要实现的内容,我们列出用户操作的模块,其中每个模块对应一个 功能。 用户启动程序进入主界面,用户可以通过添加模块添加本地歌曲,可以一首一首添也 可以添加整个歌曲文件夹。通过
34、播放列表用户可以实现对歌曲的查找、播放、暂停、音 量调节、静音。通过歌词模块可以实行歌曲歌词的显示、比对、歌词字体选择。 此外用户还可以联网下载歌词、歌曲。其功能模块时序图如下 3-2 所示: 淮阴师范学院毕业论文(设计) - 12 - 主界面播放列表播放界面播放对象方法 打 开 文 件 添加到播 放列表 选 择 歌 曲 播 放 播放页面 播 放 访问播放方法 播 放 方 法 返回播放界面 图 3-2 音乐播放器功能时序图 4 4系统设计系统设计 4.14.1 系统概要设计系统概要设计 在需求明确、准备开始编码之前,要做概要设计。概要设计的主要任务是把需求分析 得到的 DFD 转换为软件结构和
35、数据结构。设计软件结构的具体任务是:将一个复杂系统 按功能进行模块划分、建立模块的层次结构及调用关系、确定模块间的接口及人机界面 等。数据结构设计包括数据特征的描述、确定数据的结构特性、以及数据库的设计。概 要设计有多种方法。在早期有模块化方法、功能分解方法;在 60 年代后期提出了面向数 据流和面向数据结构的设计方法;近年来又提出面向对象的设计方法等。本系统采用模 块化软件设计,自顶向下逐层把软件系统划分成若干模块。每个模块完成一个特定的功 能,最后将所有模块按照某种方法组合成一个整体,达到整个播放器所要求的功能。 4.24.2 系统功能设计及描述系统功能设计及描述 本音乐播放器不仅要实现对
36、一些常见的音频格式文件的播放,而且还要有友好的用户 界面。其最终设计目标是:实现对多种音频格式文件的播放、实现对歌词的滚动播放及 当前播放曲目长度显示、显示歌曲文件信息、实现静音和音量控制;播放器软件占用系 统资源少、运行平台要求不高、界面美观舒适、操作简单、易维护、高稳定性、 ,能满足 用户的常见需求。 主要划分为以下七个功能模块,每个功能模块的作用描述如下: 淮阴师范学院毕业论文(设计) - 13 - 播放控制:控制歌曲的播放状态,如:播放、暂停、上一曲、下一曲。播放过的歌曲 按播放顺序排列在播放列表中,每次退出程序、重启播放器后播放列表中的播放记录 会自动保存不会清空。 文件控制:主要用
37、来打开本地播放文件。通过研究音频编码解码的相关技术,了解音 频编码解码的原理和过程,本音乐播放器支持常见音频格式文件播放如: MP3、WMA、WAV 等。可以单个曲目添加,也可以将整个文件夹中的曲目全部添加, 实现歌曲文件添加的多样化;此外还可以对播放列表进行清空,对曲目的播放顺序进 行控制;当播放列表中曲目过多时,可以从播放列表中快速搜索到需要播放的歌曲。 还有对播放列表进行控制如:打开文件所在目录、移除列表、删除文件、显示歌曲文 件的相关信息,如:歌手、专辑等。 歌词控制:播放音乐时控制是否显示歌曲歌词,若歌词存在则同步滚动显示歌词,若 歌词不存在则可联网下载歌词。此外还可以对歌词字体进行
38、设置。 进度控制:显示当前歌曲的播放总时长和已播放时长,可以通过鼠标调整歌曲的播放 进度,实现歌曲的跳跃式播放。其实现方式是通过进度条和时间的同步显示。 声音控制:调整歌曲音量的大小,显示是否静音。 下载控制:可以联网下载自己喜欢的歌曲、歌词。若不知道歌曲名称则可以按歌手名 查找歌曲下载,若知道歌曲名则可直接输入名称进行下载,可以在下载进度列表中查 看下载状态。 音乐剪切:对音乐文件进行剪切。添加当前路径,对想要的歌曲进行播放,在歌曲播 放过程中你可以在任何地方设置一个起点,然后,再设置一个终点。 “试听歌曲”就 是把你选出来的这一段播放一遍,看是不是你要的那一段,有时候可以早开始了几秒 或者
39、早结束了几秒,这个时候可以直接在起点和终点的地方进行调整。然后在这个窗 口的上面有个“保存歌曲” ,就可以把你选出来的这段音乐保存起来了。我们可以通 过歌曲剪切功能截取自己喜欢的音乐片段,来做为自己的手机铃声。 其具体功能模块如图 4-1 所示: 淮阴师范学院毕业论文(设计) - 14 - 播放器 播 放 控 制 文 件 控 制 歌 词 控 制 进 度 控 制 声 音 控 制 下 载 控 制 播 放 / 暂 停 停 止 上 一 曲 / 下 一 曲 打 开 文 件 播 放 列 表 歌 词 显 示 歌 词 搜 索 歌 词 字 体 设 置 歌 词 比 对 显 示 播 放 进 度 调 整 播 放 进
40、度 音 量 大 小 控 制 静 音 歌 曲 下 载 歌 词 下 载 输 入 歌 曲 名 下 载 按 歌 手 名 下 载 音 乐 剪 切 图 4-1 音乐播放器功能模块图 5 5系统功能实现系统功能实现 根据上一章对系统各个模块的分析,本节主要讲述如何具体实现这些模块功能。 几乎所有的 Windows 程序都离不开窗体,Windows 窗体应用程序是 Windows 下进行 软件开发的基础。在 C#中,通过 Visual Studio 2008 开发平台模版,可以自动生成多种基 于 Windows 的应用程序框架,主要包括基于.NET Framework 的 Windows 窗体应用程序、 淮阴
41、师范学院毕业论文(设计) - 15 - Windows 服务应用程序。最常用的是 Windows 窗体应用程序。在 Windows 窗体应用程序 中,有窗体(Form)和控件(Control)两个基本概念。窗体是控件的容器,控件是应用程序显 示数据或接受数据输入的相对独立的用户界面元素。.NET 类库提供了丰富的窗体相关类, 包括窗体、按钮、状态栏、工具栏、菜单、文本框、列表等多种不同的界面元素;此外 还提供各种控件、组件、容器。通过这些界面元素的不同组合,可以设计出友好的用户 界面。对于软件开发中要用到的图片可以自己绘制,相关控件可以调用类库,从而设计 出外形美观的界面。但这也做相当费时,由
42、于毕业设计的时间有限,图片都从网上下载, 并做稍微处理,所以美观方面有一定欠缺,待以后有时间慢慢改进。此外界面是由窗体、 控件拖放组成,大部分代码由视图设计器自动生成,无需太多改动,因此这一部分不再 详细阐述,下面将主要介绍主要功能模块的核心代码实现。 5.15.1 歌曲添加模块歌曲添加模块 很多的应用程序都有打开文件功能,本程序使用 OpenFileDialog 组件,用来打开本地 磁盘上的一个或多个文件,并添加到文件播放列表中。 5.1.15.1.1 添加歌曲文件添加歌曲文件 为了赶上社会的潮流,我们经常会从网上下载最热门的音乐,本模块功能就是实现添 加本地歌曲或已下载到电脑的最新歌曲到播
43、放列表,同时更新播放列表,使我们能及时 欣赏到自己喜欢的音乐。其具体代码如下: private void AddSong_Click(object sender, EventArgs e) ofd.Filter = “音乐文件(*.wmv, *.mp3,*.wav)| *.wmv; *.mp3;*.wav|All files (*.*)|*.*“; ofd.InitialDirectory = Application.StartupPath; ofd.FileName = “; ofd.RestoreDirectory = false; ofd.Title = “添加音乐文件“; if (of
44、d.ShowDialog() = DialogResult.OK) string strLongPath = ofd.FileName; WriteFileByLongPath(strLongPath); 淮阴师范学院毕业论文(设计) - 16 - private void WriteFileByLongPath(string strLongPath) int b = strLongPath.LastIndexOf(“); string strShortPathWithExtension = strLongPath.Substring(b + 1); StreamWriter sw = new
45、 StreamWriter(“list.ini“, true); string extension = strShortPathWithExtension.Substring(strShortPathWithExtension.Length - 3); if (extension.ToLower() = “ wmv “ | extension.ToLower() = “ mp3“ | extension.ToLower() = “wav“) string strShortPathWithoutExtension = strLongPath.Substring(b + 1, strShortPa
46、thWithExtension.Length - 4); Mp3 mp3 = new Mp3(strLongPath); if (!(String.IsNullOrEmpty(mp3.Artist) | String.IsNullOrEmpty(mp3.Title) /获取成功的结果(歌手名 - 歌曲名) strShortPathWithoutExtension = mp3.Artist.Trim() + “ - “ + mp3.Title.Trim(); /否则原文件名 if (!this.myListBox.Items.Contains(strShortPathWithoutExtensi
47、on) /不包含 songList.Add(strShortPathWithoutExtension); Image image = getImageByArtistOrSongName(mp3.Artist, strShortPathWithoutExtension); imageList.Add(image); this.myListBox.Items.Add(strShortPathWithoutExtension); this.myListBox.songList = songList; this.myListBox.imageList = imageList; 淮阴师范学院毕业论文(
48、设计) - 17 - sw.WriteLine(strShortPathWithoutExtension); sw.WriteLine(strLongPath); /写入全路径 sw.Flush(); sw.Close(); 5.15.12 2 添加歌曲文件夹添加歌曲文件夹 当我们要欣赏歌曲专辑时,可能要添加的文件比较多,显然单曲添加比较麻烦,这时 我们就可以使用 OpenFileDialog 组件的 Multiselect 属性和 Filenames 属性实现整个文件夹 的添加,同时更新播放列表。代码如下: private void tsmiAddSongFolder_Click(objec
49、t sender, EventArgs e) if (fbd.ShowDialog() = DialogResult.OK) string str = fbd.SelectedPath; DirectoryInfo r = new DirectoryInfo(str); GetAllFiles(r); public void GetAllFiles(DirectoryInfo dir) FileSystemInfo fileinto = dir.GetFileSystemInfos(); foreach (FileSystemInfo i in fileinto) if (i is DirectoryInfo) GetAllFiles(DirectoryInfo)i); else 淮阴师范学院毕业论文(设计) - 18 - string strLongPath = i.FullName; WriteFileByLongPath(strLongPath); private void tsmiSearch_Click(object se
链接地址:https://www.31doc.com/p-3976123.html