收藏 分销(赏)

移动通信程序设计-基于Android音乐播放器的设计与实现.pdf

上传人:曲**** 文档编号:462228 上传时间:2023-10-11 格式:PDF 页数:37 大小:2.24MB
下载 相关 举报
移动通信程序设计-基于Android音乐播放器的设计与实现.pdf_第1页
第1页 / 共37页
移动通信程序设计-基于Android音乐播放器的设计与实现.pdf_第2页
第2页 / 共37页
移动通信程序设计-基于Android音乐播放器的设计与实现.pdf_第3页
第3页 / 共37页
移动通信程序设计-基于Android音乐播放器的设计与实现.pdf_第4页
第4页 / 共37页
移动通信程序设计-基于Android音乐播放器的设计与实现.pdf_第5页
第5页 / 共37页
点击查看更多>>
资源描述

1、滨江学院移动通信程序设计 课程设计题目 基于Android系统的音乐播放器院 系滨江学院专 业计算机科学与技术 摘要随着生活水平的提高,娱乐已成为非常主流的话题,人们不仅需要通过音乐陶冶 情操,而且越来越多的人倾向于使用音乐、视频等娱乐和放松自己,这大大促进了媒体软 件的发展.本文旨在介绍研究常用数字音频编码和解码的相关知识,并结合VS2008编写多 功能音乐播放器,了解音乐播放器功能的实现,掌握开发音乐播放器所需的相关知识,采 用了面向对象软件工程方法,其开发主要包括应用程序界面设计和后台代码运行两个方 面,实现了多功能音乐播放器在计算机上的应用,可以在很大程度上满足用户的需求.该 系统主要

2、具备:音乐播放控制、音乐文件控制、音量控制、下载控制、歌词控制、进度控 制、音乐剪辑等功能模块。关键字:音乐播放器,音频编码格式,TechSmith Screen C apture C od ec,FFmpeg,C#,Visual Stud io 2008目录1 前言.-1-1.1 选题的背景及意义.-2-1.2 网络流行音乐播放器简介.-2-2系统相关技术及开发平台介绍.-3-2.1 开发应用技术介绍.-3-2.2 开发及运行坏境.-5-3系统的分析.-6-3.1 可行性分析.-6-3.2 常见的几种音频格式及其特点.-7-3.3 需求分析.-8-4系统设计.-1 0-4.1 系统概要设计.

3、-1 0-4.2 系统功能设计及描述.-1 0-5系统功能实现.-1 2-5.1 歌曲添加模块.-1 3-5.2 歌曲列表模块.-1 7-5.3 播放控制模块.-1 8-5.4 音量控制模块.-21-5.5 进度控制模块.-22-5.6 滚动字幕模块.-22-5.7 歌曲下载模块.-27-5.8 歌曲剪辑模块.-29-结论.-33-参考文献.-34-致谢.错误!未定义书签。1前言1.1 选题的背景及意义音乐是情感的艺术,美妙动听的音乐来源于情感,又潜移默化地影响情感,让我们进 入瑰丽多彩的虚化与现实的意境之中。向上追溯百年或千年,直至最原始的音乐诞生之初,我相信音乐是为了倾诉而不是表现,是自然

4、的流露而不是技巧的夸张,是自我的沉醉而不 是别人的掌声。因为爱与感动,因为生命的圆满与缺憾,因为思想的灵动与创造。所以音 乐不单在乐谱上,更在我们的心中。众所周知任何格式的音乐都要通过音乐播放软件播放,那么音乐播放软件是通过什么 样的原理实现音乐的播放的呢?音乐播放器就是音频解码器的可视化操作界面,其实质是 针对各种音频编码格式的解码器。例如APE格式调用的是Monkeys Aud io解码器,FLAG 格式调用的是FLAC解码器,MP3调用的是lame解码器。大部分音乐播放器都支持多种音 乐格式的文件,这是因为这些播放器将不同的音频解码器打包起来,并制作统一的播放界 面,从而让使用者能够方便

5、地播放和聆听各种音乐。伴随着改革开放人们的生活水平普遍提高如今音乐已成为越来越多人的心灵寄托。随 着因特网在我国的普及随之而来的是各式各样的播放器软件。尽管未来的音乐播放器将具备各种丰富多彩的功能,但作为一款多媒体软件,音频应 用才是最基本的,也是最能决定获取用户数量的因素。基于上述分析音质高,外形美观,小巧且功能强大是未来播放器发展的主流趋势。作 为一个音乐爱好者兼软件工程专业的一员若能编写一款小巧功能强大的音乐播放器无疑 是一件很有成就感的事情。1.2 网络流行音乐播放器简介本小节举例介绍目前网络上流行的几款音乐播放器,比如国产千千静听,酷狗音乐等。比较分析了它们各自特有的功能,此外还集中

6、介绍了常见的几种编码格式以及它们各自的 特点。1.2.1 千千静听千千静听是一款专为用户定制的全新一代的免费听歌F载音乐播放器软件。提供百万 首歌曲免费试听下载,搦有最新、最流行的歌曲,提供第一时间音乐资讯;超高品质(320kbps)的音乐歌曲下载,给耳朵更优质的享受;超炫的智能语音搜歌功能让听歌更加快捷;免费 的手机铃声歌曲下载;轻松拖拽歌词,保持歌词同步,支持边听边唱;支持在线播放下载;流量限额提醒功能。软件特色:1、高精度音质,完美还原听觉;2、在线自动下载歌词,卡拉OK式同步 显示;3、软件小、运行快、支持众多插件,自由编辑歌词,由你做主;4、自由转换MP3、WMA,APE,WAV等多

7、种音频格式,批量修改歌曲标签信息;5、个性化皮肤,多种视 觉效果享受永远免费。1.2.2 酷狗音乐酷狗音乐是中国领先的数字音乐交互服务提供商,互联网技术创新的领军企业,致力 于为互联网用户和数字音乐产业发展提供最佳的解决方案,公司的使命是成为亚太地区最 大的数字音乐销售推广企业。自公司创建以来,一直在数字音乐发展上大胆尝试,先后与 几十家唱片公司、版权管理机构合作探索发展,积累了数万首数字音乐版权,并在推动广 范围的跨行业、跨平台合作上做出努力,在艰巨的全球音乐数字化进程中做出自身的贡献。全球最受欢迎的免费中文播放软件,流行音乐搜索平台。软件特色:1、迷你界面、界面更酷、绚丽流行;保持了 Wi

8、ndows Vista和XP下的完 美表现,让人耳目一新;2、卡拉OK酷狗独创“卡拉OK”歌词显示,多种模式,边听边 唱,让你听歌更好玩;3、支持本地音乐播放完美音质,支持所有的音频文件,本地文件 拖放,同时支持网络高速下载和本地播放;4、超强搜索和下载优化歌曲搜索引擎,提高 搜索准确度;智能化节约带宽,可关闭网络功能;5、流行音乐资讯酷狗榜单家族、狗友 推荐、酷吧、狗窝,最新流行音乐一网打尽,好听的音乐来“找”你;6、个性化手机炫 铃DIY,让拥有张扬个性的铃声7、音频格式我选择我的歌曲我制作,音质音效我决定8、收音机动感音乐识别体验精选多家电台,收听全球风云变化,更能识别电台中的音乐。2系

9、统相关技术及开发平台介绍本系统是采用面向对象的软件开发方法,基于微软的Visual Studio.Net开发平台,以 C#作为本系统的开发语言实现音乐播放器预定的需求功能。2.1开发应用技术介绍2.1.1 TechSmith Screen C apture C od ec 简介TechSmith Screen Capture Codec 是 TechSmith 公司开发的 Camtasia Studio 的一个组件,用于压缩Camtasia Recorder中的视频文件,最大的优点是可以保证图像的质量,截取的屏 幕经过多次压缩,还能保证高质量。比传统的压缩方式相比,优势十分明显。Camtasi

10、a Studio是TechSmith旗下一款专门录制屏幕动作的工具,无论在何种颜色模式 下它都能轻松地对屏幕动作进行记录,包括声音、图像、鼠标的移动轨迹等。此外,它还 能够对音频片段进行编辑、压缩、剪接从而实现多种音效的播放。它还能输出包括 Flash(SWF/FLV)AVI、WMV、M4V、CAMV、MOV、RM、GIF 动画等多种常见格式,是制作视频演示的绝佳工具。其实Camtasia Studio已不仅仅是一个录屏工具了,它包括了 5个组件:Camtasia录像器、菜单制作器、音频编辑器、剧场及播放器。本播放器在运行之前需要安装TechSmith Screen Capture Codec

11、组件,此组件会和系统 一起打包发行,用户也可以自己从网上下载更高版本的组件,只有安装此组件才能实现播 放器中的歌词剪切功能。2.1.2 FFmpeg 简介FFmpeg在Linux平台下开发,但它同样也可以在其它操作系统环境中编译运行,包括 Windows Mac OS X 等。这个项目最早由 Fabrice Bellard 发起,现在由 Michael Niedermayer 维护。许多FFmpeg的开发人员都来自MPlayer项目,而且当前FFmpeg也是放在MPlayer 项目组的服务器上。项目的名称来自MPEG视频编码标准,前面的“FF”代表Fast Forwardo 使用本播放器如果要

12、对flv格式的文件进行播放则要安装FFmpego2.1.3 Visual Stud io.Net集成开发环境简介.NET平台为创建新一代分布式Web应用提供了所有工具和技术(表示技术、构件技 术和数据库技术)。.NET平台支持标准的Internet协议,包括HTTP(超文本传输协议)、XML(可扩展标记语言)和SOAP(简单对象访问协议)等,从而实现了异构系统间应用 程序的集成和通信,即用户和供应商可将在此平台上开发的产品和服务无缝地嵌入自身的 业务进程和日常活动的信息架构中。,NET平台建立在开放系统结构基础之上,集Microsoft在软件领域的主要技术成就于 一身。.NET平台包括一下4种

13、核心技术:.NET Framework、.NET企业服务器、构件模块 服务和 Visual Studio.NET。.NET Framework是.NET平台核心中的核心,它为.NET平台下应用程序的运行提供 基本框架,如果把Windows操作系统比作一幢摩天大厦的地基,那么.NET Framework就 是摩天大厦中由钢筋和混凝土搭成的框架。.NET企业服务器是Microsoft为企事业单位提供的技术服务中的一部分,它包括 Microsoft BizTalk Server Microsoft Commerce Server Host Integration Server Exchange Se

14、rver SQL Server等技术的开发工具包。构建模块服务主要是Microsoft提供的COM+组件服务和XMLWeb服务技术,利用构 建模块服务开发应用程序模块,可以迅速地组装一个功能完备的软件。Visual Studio.NET是.NET平台的主要开发工具,由于.NET平台是建立在开放系统结 构基础之上的,因此应用程序开发人员也可以使用其它开发工具。2.1.4 C#语言简介C#(为音乐标记,读Sharp)是一种面向对象的编程语言,主要用于开发可以运行 在.NET平台上的应用程序。C#语言是微软公司开发的基于.NET Framework的一种编程语 言,它继承了 C/C+优良传统,又借鉴

15、了 Java的很多特点。微软对C#的定义是:“C#是从 C和C+派生出来的一种简单、现代、面向对象和类型安全的编程语言。C#主要是从C/C+编程语言家族移植过来的,C和C+的程序员能够很快熟悉它。C#试图结合Visual Basic 的快速开发能力和C+的强大灵活的能力。”C#是2000年6月微软公司发布的一种全新编程语言,是由Anders Hejlsberg和他的微 软开发团队所设计,具体如下特点:通用,支持跨平台。C#程序的客户端可以运行在不同类型的客户端上,如PDA、手机 等PC装置。简单,主要体现在垃圾收集、指代等特性上。垃圾收集机制将减轻开发人员对内存的 管理负担,而指代功能更是可以

16、让开发者不经过内部类就调用函数。利用C#的这些功 能,可以使开发者通过较少的代码来实现更强大的应用程序,并且能够更好地避免错 误发生,从而缩短了应用系统的开发周期。面向对象设计,C#具有封装、继承和多态等面向对象程序语言的特征。与Web应用紧密的结合,C#支持绝大多数的Web标准,如HTML、XML、SOAP等。这是C#最大的特点,使用它可以轻松开发各种企业级应用平台。安全性机制,消除软件开发中常见错误(如语法错误),.NET提供的垃圾回收器能够 帮助开发者有效的管理内存资源。兼容性,C#遵循.NET的公共语言规范(CLS),能够保证与其它语言开发组件兼容。灵活的版本处理技术,C#在语言本身内

17、置了版本控制功能,开发人员可以更加容易地 开发和维护。C#提供了完善的错误和异常触发机制。2.2开发及运行坏境硬件平台:CPU奔腾双核(主频2.0GHz)内存1G32位PC机160G硬盘软件平台:操作系统:Windows XP Win7Win8开发工具:Visual Studio 2008 0本软件占用系统空间小,能满足用户对常见音频格式文件的播放要求,还具有歌曲、歌词 下载等功能,界面美观交互性好,易于用户理解操作,且不依赖于其它软件,消耗资源少 易维护,程序有较好的健壮性和正确性。运行该软件所需的坏境配置不高,能满足绝大多 数用户的需求。3系统的分析3.1 可行性分析可行性研究(feasi

18、bility study)的目的,是弄清楚待开发的项目是不是可能实现和值得进 行,通常由系统分析员完成,并需写出可行性论证报告。如结论认为可行,即可制定项目 实施计划,同时开始软件开发;如结论认为不可行,则应提出终止该项目的建议。可行性 论证其实是在高层次上进行的一次大大简化了的需求分析与设计。但它的目的不是去解决 用户提出的问题,仅是确定这项开发是否值得进行,分析它存在哪些风险。换句话来说,在投入大量精力前研究成功的可能性,减小可能出现的风险。即使研究的结论是不值得进 行,所花的精力也并不浪费,因为它避免了一次更大的浪费。下面我们将根据本系统的特 点具体描述以下可行性分析。3.1.1 经济可

19、行性开发一个基于计算机的系统主要是为了获取较好的经济效益和社会效益。因此对待开 发系统的经济可行性论证就成为可行性研究的重要内容。成本-效益分析可用于评估系统的 经济合理性,给出系统开发的成本估算,并将估算的成本与获得的利润进行比对,从经济 的角度论证待开发系统是否可行。一般来说,基于计算机系统的成本主要由4部分组成:1)购置并安装软硬件及有关设备的费用。2)系统开发费用。3)系统安装、运行和维护费用。4)人员培训费用。5)结合毕业设计的整个开发过程可知开发音乐播放器所需的全部软件平台都是免费的,所以在经济上是完全可行的。3.1.2 技术可行性技术可行性是可行性研究的关键内容。由于系统分析和定

20、义过程与系统技术可行性评 估过程同时进行,此时系统的功能、性能和目标的不确定性会给技术可行性论证带来许多 困难。因此,技术可行性研究往往是系统开发过程中难度最大的工作。该音乐播放器是用 C#语音开发的,调试比较简单,所需的计算机硬件配置要求不高,一般PC机完全能满足 开发要求。软件方面:基于微软.net开发平台使用C#面向对象的编程语音,它开发速度快,简单易用,技术成熟,软件也容易从网上获得,完全能满足开发需求。3.1.3 法理可行性法律可行性主要研究新系统的开发和使用是否会侵犯他人权益,是否触犯了国家的法 律法规。本次的毕业设计是由本人独立完成,开发的系统不会侵犯任何人的权益,所用的 软件都

21、是通过合法途径获取,因此完全符合法律法规。综上所述,本系统的开发从经济上、技术上、法律上都是完全可行的。3.2 常见的几种音频格式及其特点MP3格式:MP3 的全称是 Moving Picture Experts Group Audio Layer IIL MP3 是 Fraunhofer-IIS研究所的杰出成果。在MP3出现前,以有损方式进行音频编码最好的效果 能够压缩到4:lo而强大的MP3可以实现12:1的高压缩比,正是因为这种性能的巨大提升,并且在实现高压缩比的同时还能够保持较好的音质,所以使得MP3迅速地流行起来。MP3 是世界上第一个实用化的有损压缩编码方案,几乎所有的播放软件都支

22、持它,也曾今产生 了许多第三方的编码工具。MP3编码质量分为:固定码率(CBR),平均码率(ABR)和动态 码率(VBR)。特点:音质好,压缩比比较高,被大量软件和硬件支持,应用广泛。WMA格式:WMA就是Windows Media Audio编码后的文件,它是微软公司推出的与 MP3格式齐名的一种新的音乐格式。WMA在压缩比和音质方面都超过了 MP3,更是远胜 于RA(Real Audio),即使在较低的采样频率下也能产生较好的音质。WMA针对的不是单 机市场,而是网络!竞争对手就是网络媒体市场中著名的Real Networks。WMA格式有非 常高的压缩率,一般为1:18,因此它的文件所占

23、空间比相应的MP3文件少一半。这是通过 提高音质、减少数据流量的方法来实现更高的压缩率的。此外它还有很强的防盗版功能。特点:低码率下的音质表现难有对手。WAV格式:WAV是微软Windows系统本身自带的音频格式,因为Windows系统的普 及性,此格式已经成了当前最主流的音频格式之一。WAV文件里面存放的每一块数据都有 自己独立的标识,通过这些标识可以告诉用户究竟是什么数据。WAV格式的设计非常灵活,该格式本身与任何媒体数据都不冲突,只要有软件支持,我们甚至可以在WAV格式里面 存放图像。在Windows平台上,通过ACM结构及相应的驱动程序,例如CODEC编码/解码器,可以在WAV文件中存

24、放超过20种的压缩格式,比如ADPCM、GSM、CCITT G.71k G723和MP3等。特点:音质非常好,被大量软件所支持。RA格式:RA格式是Real Networks公司所开发的一种新型流式音频Real Audio文件 格式。这是网上接触得非常多的一种格式,大部分音乐网站的在线试听都采用了 Real Audio,这种格式完全针对的就是网络上的媒体市场,支持非常丰富的功能。最大的优点 就是这种格式可以根据听众的带宽来控制自己的码率,在保证流畅的前提下尽可能提高音 质。即特点:码率可控,支持多种音频编码,可边读边放。3.3 需求分析软件需求是指用户对目标软件系统在功能、性能、行为、设计约束

25、等方面的期望。需 求分析就是通过对应用问题及其坏境的分析与理解采用一系列的分析方法和技术将用户 的需求逐步精确化、完全化、一致化,最终形成需求规模说明文档的过程。本节将从不同 的角度描述系统的需求。3.3.1播放器的基本控制需求在着手开发系统之前首先要明确该系统应该实现的一些最基本的功能,然后逐步细化,为每个功能创建一个模块,再对各个模块进行开发。通过分析我们得出一款音乐播放器的 基本控制如图3-1所示:图3-1播放器基本控制图3.3.2功能需求功能需求规定开发人员必须在产品中实现的软件功能,用户利用这些功能来完成任务,满足业务需求。功能需求有时也被称作行为需求(behavioral requ

26、irement),因为习惯上总 是用“应该”对其进行描述。功能需求描述是开发人员需要实现什么。功能需求定义一个 软件系统或组件的功能,也是一个系统需提供的功能及服务。功能可以用一组输入、行为 及输出的组合来表示。功能需求可以是计算、技术细节、数据处理或其他说明系统希望达 成功能的内容。功能需求会以非功能性需求(或是质量需求)为其基础。结合音乐播放器所要实现的内容,我们列出用户操作的模块,具中每个模块对应一个 功能。用户启动程序进入主界面,用户可以通过添加模块添加本地歌曲,可以一首一首添也 可以添加整个歌曲文件夹。通过播放列表用户可以实现对歌曲的查找、播放、暂停、音量 调节、静音。通过歌词模块可

27、以实行歌曲歌词的显示、比对、歌词字体选择。此外用户还可以联网下载歌词、歌曲。其功能模块时序图如下3-2所示:主界面播放对象方法打 开 文 件播放界面播放列表播放方法图3-2音乐播放器功能时序图4系统设计4.1 系统概要设计在需求明确、准备开始编码之前,要做概要设计。概要设计的主要任务是把需求分析 得到的DFD转换为软件结构和数据结构。设计软件结构的具体任务是:将一个复杂系统 按功能进行模块划分、建立模块的层次结构及调用关系、确定模块间的接口及人机界面等。数据结构设计包括数据特征的描述、确定数据的结构特性、以及数据库的设计。概要设计 有多种方法。在早期有模块化方法、功能分解方法;在60年代后期提

28、出了面向数据流和 面向数据结构的设计方法;近年来又提出面向对象的设计方法等。本系统采用模块化软件 设计,自顶向下逐层把软件系统划分成若干模块。每个模块完成一个特定的功能,最后将 所有模块按照某种方法组合成一个整体,达到整个播放器所要求的功能。4.2 系统功能设计及描述本音乐播放器不仅要实现对一些常见的音频格式文件的播放,而且还要有友好的用户 界面。其最终设计目标是:实现对多种音频格式文件的播放、实现对歌词的滚动播放及当 前播放曲目长度显示、显示歌曲文件信息、实现静音和音量控制;播放器软件占用系统资 源少、运行平台要求不高、界面美观舒适、操作简单、易维护、高稳定性、,能满足用户 的常见需求。主要

29、划分为以下七个功能模块,每个功能模块的作用描述如下:播放控制:控制歌曲的播放状态,如:播放、暂停、上一曲、下一曲。播放过的歌曲 按播放顺序排列在播放列表中,每次退出程序、重启播放器后播放列表中的播放记录 会自动保存不会清空。文件控制:主要用来打开本地播放文件。通过研究音频编码解码的相关技术,了解音 频编码解码的原理和过程,本音乐播放器支持常见音频格式文件播放如:MP3、WMA、WAV等。可以单个曲目添加,也可以将整个文件夹中的曲目全部添加,实现歌曲文件 添加的多样化;此外还可以对播放列表进行清空,对曲目的播放顺序进行控制;当播 放列表中曲目过多时,可以从播放列表中快速搜索到需要播放的歌曲。还有

30、对播放列 表进行控制如:打开文件所在目录、移除列表、删除文件、显示歌曲文件的相关信息,如:歌手、专辑等。歌词控制:播放音乐时控制是否显示歌曲歌词,若歌词存在则同步滚动显示歌词,若 歌词不存在则可联网下载歌词。此外还可以对歌词字体进行设置。进度控制:显示当前歌曲的播放总时长和已播放时长,可以通过鼠标调整歌曲的播放 进度,实现歌曲的跳跃式播放。其实现方式是通过进度条和时间的同步显示。声音控制:调整歌曲音量的大小,显示是否静音。下载控制:可以联网下载自己喜欢的歌曲、歌词。若不知道歌曲名称则可以按歌手名 查找歌曲下载,若知道歌曲名则可直接输入名称进行下载,可以在下载进度列表中查 看下载状态。音乐剪切:

31、对音乐文件进行剪切。添加当前路径,对想要的歌曲进行播放,在歌曲播 放过程中你可以在任何地方设置一个起点,然后,再设置一个终点。“试听歌曲”就是 把你选出来的这一段播放一遍,看是不是你要的那一段,有时候可以早开始了几秒或 者早结束了几秒,这个时候可以直接在起点和终点的地方进行调整。然后在这个窗口 的上面有个“保存歌曲”,就可以把你选出来的这段音乐保存起来了。我们可以通过歌 曲剪切功能截取自己喜欢的音乐片段,来做为自己的手机铃声。其具体功能模块如图4-1所示:歌 词 字 体 设 置歌 词 比 对输 入 歌 曲 名 下 我按歌手名下载图4-1音乐播放器功能模块图5系统功能实现根据上一章对系统各个模块

32、的分析,本节主要讲述如何具体实现这些模块功能。几乎所有的Windows程序都离不开窗体,Windows窗体应用程序是Windows下进行软 件开发的基础。在C#中,通过Visual Studio 2008开发平台模版,可以自动生成多种基于 Windows的应用程序框架,主要包括基于.NET Framework的Windows窗体应用程序、Windows服务应用程序。最常用的是Windows窗体应用程序。在Windows窗体应用程序 中,有窗体(Form)和控件(Control)两个基本概念。窗体是控件的容器,控件是应用程序显 示数据或接受数据输入的相对独立的用户界面元素。.NET类库提供了丰富

33、的窗体相关类,包括窗体、按钮、状态栏、工具栏、菜单、文本框、列表等多种不同的界面元素;此外还 提供各种控件、组件、容器。通过这些界面元素的不同组合,可以设计出友好的用户界面。对于软件开发中要用到的图片可以自己绘制,相关控件可以调用类库,从而设计出外形美 观的界面。但这也做相当费时,由于毕业设计的时间有限,图片都从网上下载,并做稍微 处理,所以美观方面有一定欠缺,待以后有时间慢慢改进。此外界面是由窗体、控件拖放 组成,大部分代码由视图设计器自动生成,无需太多改动,因此这一部分不再详细阐述,下面将主要介绍主要功能模块的核心代码实现。5.1歌曲添加模块很多的应用程序都有打开文件功能,本程序使用Ope

34、nFileDialog组件,用来打开本地 磁盘上的一个或多个文件,并添加到文件播放列表中。5.1.1添加歌曲文件为了赶上社会的潮流,我们经常会从网上下载最热门的音乐,本模块功能就是实现添 加本地歌曲或已下载到电脑的最新歌曲到播放列表,同时更新播放列表,使我们能及时欣 赏到自己喜欢的音乐。其具体代码如下:private void Ad d Song_C lick(object send er,E ventArgs e)!ofd.Filter=音乐文件(*.wmv,*.mp3,*.wav)|*.wmv;*.mp3;*.wav|All files(*.*)|*.*;ofd.InitialDirect

35、ory=Application.StartupPath;ofd.FileName=”;ofd.RcstorcDircctory-false;ofd.Title=添加音乐文件”;if(ofd.ShowDialogO DialogResult.OK)string strLongPath=ofd.FileName;WriteFileByLongPath(strLongPath);private void WriteFileByLongPath(string strLongPath)int b=strLongPath.Lastlnd exOf();string strShortPathWithE xt

36、ension=strLongPath.Substring(b+1);StreamWriter sw=new StreamWriter(list,ini”,true);string extension=strShortPathWithE xtension.Substring(strShortPathWithE xtension.Length-3);if(extension.ToLower()=wmv|extension.ToLower()=mp3”|extension.ToLower()=wav)string strShortPathWithoutE xtension=strLongPath.S

37、ubstring(b+1,strShortPathWithE xtension.Length-4);Mp3 mp3=new Mp3(strLongPath);if(!(String.IsNullOrE mpty(mp3.Artist)|String.IsNullOrE mpty(mp3.Title)获取成功的结果(歌手名-歌曲名)strShortPathWithoutE xtension=mp3.Artist.Trim()+-+mp3.Title.Trim();否则原文件名 if(!this.myListBox.Items.C ontains(strShortPathWithoutE xten

38、sion)不包含songList.Ad d(strShortPathWithoutE xtension);Image image=getlmageByArtistOrSongName(mp3.Artist,strShortPathWithoutE xtension);imageList.Ad d(image);this.myListBox.Items.Ad d(strShortPathWithoutE xtension);this.myListBox.songList=songList;this.myListBox.imageList=imageList;sw.WriteLine(strSho

39、rtPathWithoutE xtension);sw.WriteLine(strLongPath);写入全路径)!sw.Flush();sw.C lose();5.1.2添加歌曲文件夹当我们要欣赏歌曲专辑时,可能要添加的文件比较多,显然单曲添加比较麻烦,这时 我们就可以使用OpenFileDialog组件的Multiselect属性和Filenames属性实现整个文件夹 的添加,同时更新播放列表。代码如下:private void tsmiAd d SongFold er_C lick(object send er,E ventArgs e)(if(fbd.ShowDialogO Dialo

40、gResult.OK)istring str=fbd.Selected Path;Directoryinfo r=new Directoryinfo(str);GetAllFiles(r);!)public void GetAllFiles(Directoryinfo d ir)(FileSystemInfo fileinto=d ir.GetFileSystemlnfos();foreach(FileSystemlnfo i in fileinto)if(i is Directoryinfo)GetAllFiles(Directoryinfo)i);)else string strLongP

41、ath=i.FullName;Wr i teF i1eByLongPath(strLongPath);)!)private void tsmiSearch C lick(object send er,E ventArgs e)(if(this.mySearchPanel.boolSearchShow)已经打开,则关闭this.mySearchPanel.close();elseithis.mySearchPanel.boolSearchShow=true;this.mySearchPanel.lb=this.myListBox;this.mySearchPanel.copyValueList(

42、);initialSearchPanel();添加音乐文件原队 黄小琥B视顷 些图片 国却 亘1迅蚕下载 音乐阖际队-童话生.董小建-顺其自然.梁静茹-梦醒时分.梁静茹一问.mp3漫步神秘园mp3童话生死恋03.磔自然梁静茹2 Down By The Salley Ga.Joanie Mad d er计算机,本圮遨盘(C:)i TOOLS(D:)j DATA(E:)i BAC KUP(F:)rrr三文件名:漫步神秘园.mp3239问音 52:件(*.mp3,*.wmv,*.wav)打开9)取消图5-1打开文件5.2 歌曲列表模块播放列表主要用来显示要播放歌曲的信息,如歌手、照片、曲名。在这里我

43、们使用 ListBox控件来实现相关功能。详细代码如下:this.myListBox.Anchor=(System.Wind ows.Forms.AnchorStyles)(System.Wind ows.Forms.AnchorStyles.Top|System.Wind ows.Forms.AnchorStyles.Bottom)I System.Wind ows.Forms.AnchorStyles.Left);this.myListBox.DrawMod e=System.Wind ows.Forms.DrawMod e.OwnerDrawVariable;this.myListBox

44、.FormattingE nabled=true;this.myListBox.Location=new System.Drawing.Point(2,1 1 5);this.myListBox.Name=myListBox”;this.myListBox.Size=new System.Drawing.Size(302,354);this.myListBox.Tabind ex=0;this.myListBox.MouseDown+=newSystem.Wind ows.Forms.MouseE ventHand ler(this.myListBox_MouseDown);private v

45、oid myListBox_MouseDown(object send er,MouseE ventArgs e)if(this.myListBox.thislnd ex!=-1)if(e.Button 二二 System.Wind ows.Forms.MouseButtons.Right)this.myListBox.C ontextMenuStrip=this.cmsListBox;)M STAlPlI黄小琥二言顺其自彳2 Joanie Mad d en-Down By The Salley Gard ens 3梁静茹-梦醒时分4梁静茹-问5 Westli fe-My Love6 1+1卓

46、文道7 1983组合一等澄走了以后8 5583.C om多多曷品质音乐网-5583.C om多多9 Maria Arred ond o 普特英谙所力多-Burning10 Nobod y Wond er Girls1 1 s“冉也发有像我这样的人了归12 刘若英 -听说?13 林佞杰-爱不会绝迹14 水木年华-元美世界主题曲15 Akon ft.潘玮柏-Be With You16胡歌-六月的雨17许茹芸-一帘幽斐18阿桑-叔箕在唱歌19云泣一垂泪20传奇21 yacure-爱尔兰国眉口琴曲录音22槛外的蝉收藏(许茹芸)-05独角戏23加勒比海盗-hes a pirate24 幽雅-Pari h

47、hpflri RI up图5-2播放列表5.3 播放控制模块播放是音乐播放器最重要的功能。本程序使用Windows Media Player命名空间中定 义的属性和方法来实现歌曲的播放、暂停、上下去切换等。其核心代码如下:private void initialBtn()if(playStatue=Med iaPlayer.PlayStatue.播放)(正在播放,暂停图片btnPlay.Image=Image.FromFile(/zpic pause.bmp,?);else if(playStatue=Med iaPlayer.PlayStatue.暂停|playStatue=Med iaPl

48、ayer.PlayStatue.停止)开始播放图片btnPlay.Image=Image.FromFile(/zpic play.bmp);if(this.boolVolumn)this.btnVolumn.Image=Image.FromFile(/pic 02.gif);elsethis.btnVolumn.Image=Image.FromFile(picWOl.gif);)private void nextSongPlay()下一曲if(playStyle=Med iaPlayer.PlayStyle.随机播放)选择随机播放时就产生一个随机数组,播放记录,根据数组,上一曲下一 曲都有用i

49、f(rand omind ex+1=rand omList.C ount)rand omSongPlay();elsethis.myListBox.d oubleC lickind ex=(int)rand omList+rand omlnd ex;)else if(playStyle=Med iaPlayer.PlayStyle.顺序播放)(this.myListBox.d oubleC iicklnd ex+;if(this.myListBox.d oubleC lickind ex=this.myListBox.Items.C ount)(playStatue=Med iaPlayer.

50、PlayStatue.停止;this.myListBox.d oubleC lickind ex 二this.myListBox.Items.C ount-1;StopO;initialBtnO;return;)else下一曲,如果到底,将播放第一首歌曲,全部循环this.myListBox.d oubleC iicklnd ex+;if(this.myListBox.d oubleC lickind ex=this.myListBox.Items.C ount)转第一首this.myListBox.d oubleC lickind ex=0;)btnC hangeSong();initial

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 行业资料 > 其他

移动网页_全站_页脚广告1

关于我们      联系我们       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号  |  icp.png浙ICP备2021020529号-1 浙B2-2024(办理中)  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服