搜档网
当前位置:搜档网 › 音乐播放器的设计与实现毕业论文

音乐播放器的设计与实现毕业论文

音乐播放器的设计与实现毕业论文
音乐播放器的设计与实现毕业论文

音乐播放器的设计与实

现毕业论文

集团文件发布号:(9816-UATWW-MWUB-WUNN-INNUL-DQQTY-

毕业设计说明书

学生姓名学号

学院计算机科学与技术学院

专业计算机科学与技术(软件工程)

题目音乐播放器的设计与实现

指导教师

(姓名)(专业技术职称/

学位)

年月

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

关键字:音乐播放器,音频编码格式,TechSmith Screen Capture Codec,FFmpeg ,C#,Visual Studio 2008

Abstract:With the improvement of standards of living, entertainment has 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 encoding 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 interface 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, music editing function module. Keywords: music player, audio coding format, techsmith screen capture codec, c#, visual studio 2008

目录

1 前言

1.1 选题的背景及意义

音乐是情感的艺术,美妙动听的音乐来源于情感,又潜移默化地影响情感,让我们进入瑰丽多彩的虚化与现实的意境之中。向上追溯百年或千年,直至最原始的音乐诞生之初,我相信音乐是为了倾诉而不是表现,是自然的流露而不是技巧的夸张,是自我的沉醉而不是别人的掌声。因为爱与感动,因为生命的圆满与缺憾,因为思想的灵动与创造。所以音乐不单在乐谱上,更在我们的心中。

众所周知任何格式的音乐都要通过音乐播放软件播放,那么音乐播放软件是通过什么样的原理实现音乐的播放的呢音乐播放器就是音频解码器的可视化操作界面,其实质是针对各种音频编码格式的解码器。例如APE格式调用的是Monkey's Audio解码器,FLAC格式调用的是FLAC解码器,MP3调用的是lame解码器。大部分音乐播放器都支持多种音乐格式的文件,这是因为这些播放器将不同的音频解码器打包起来,并制作统一的播放界面,从而让使用者能够方便地播放和聆听各种音乐。

伴随着改革开放人们的生活水平普遍提高如今音乐已成为越来越多人的心灵寄托。随着因特网在我国的普及随之而来的是各式各样的播放器软件。

尽管未来的音乐播放器将具备各种丰富多彩的功能,但作为一款多媒体软件,音频应用才是最基本的,也是最能决定获取用户数量的因素。

基于上述分析音质高,外形美观,小巧且功能强大是未来播放器发展的主流趋势。作为一个音乐爱好者兼软件工程专业的一员若能编写一款小巧功能强大的音乐播放器无疑是一件很有成就感的事情。

1.2 网络流行音乐播放器简介

本小节举例介绍目前网络上流行的几款音乐播放器,比如国产千千静听,酷狗音乐等。比较分析了它们各自特有的功能,此外还集中介绍了常见的几种编码格式以及它们各自的特点。

1.2.1 千千静听

千千静听是一款专为用户定制的全新一代的免费听歌下载音乐播放器软件。提供百万首歌曲免费试听下载,拥有最新、最流行的歌曲,提供第一时间音乐资讯;超高品质(320kbps)的音乐歌曲下载,给耳朵更优质的享受;超炫的智能语音搜歌功能让听歌更加快捷;免费的手机铃声歌曲下载;轻松拖拽歌词,保持歌词同步,支持边听边唱;支持在线播放下载;流量限额提醒功能。

软件特色:1、高精度音质,完美还原听觉;2、在线自动下载歌词,式同步显示;3、软件小、运行快、支持众多插件,自由编辑歌词,由你做主;4、自由转换MP3、WMA,APE,WAV等多种音频格式,批量修改;5、个性化,多种视觉效果享受永远免费。

1.2.2 酷狗音乐

是领先的数字音乐交互服务提供商,技术创新的领军企业,致力于为互联网用户和数字音乐产业发展提供最佳的解决方案,公司的使命是成为最大的数字音乐销售推广企业。自公司创建以来,一直在数字发展上大胆尝试,先后与几十家唱片公司、版权机构合作探索发展,积累了数万首,并在推动广范围的跨行业、跨平台合作上做出努力,在艰巨的全球音乐数字化进程中做出自身的贡献。全球最受欢迎的免费中文播放软件,流行搜索平台。

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

2 系统相关技术及开发平台介绍

本系统是采用面向对象的软件开发方法,基于微软的Visual Studio .Net 开发平台,以C#作为本系统的开发语言实现音乐播放器预定的需求功能。

2.1 开发应用技术介绍

2.1.1 TechSmith Screen Capture Codec简介

TechSmith Screen Capture Codec是TechSmith公司开发的Camtasia Studio 的一个组件,用于压缩Camtasia Recorder中的视频文件,最大的优点是可以保证图像的质量,截取的屏幕经过多次压缩,还能保证高质量。比传统的压缩方式相比,优势十分明显。

Camtasia Studio是TechSmith旗下一款专门录制屏幕动作的工具,无论在何种颜色模式下它都能轻松地对屏幕动作进行记录,包括声音、图像、鼠标的移动轨迹等。此外,它还能够对音频片段进行编辑、压缩、剪接从而实现多种音效的

播放。它还能输出包括Flash(SWF/FLV)、AVI、WMV、M4V、CAMV、MOV、RM、GIF 动画等多种常见格式,是制作视频演示的绝佳工具。其实Camtasia Studio已不仅仅是一个录屏工具了,它包括了5个组件:Camtasia录像器、菜单制作器、音频编辑器、剧场及播放器。

本播放器在运行之前需要安装TechSmith Screen Capture Codec组件,此组件会和系统一起打包发行,用户也可以自己从网上下载更高版本的组件,只有安装此组件才能实现播放器中的歌词剪切功能。

2.1.2 FFmpeg简介

FFmpeg在Linux平台下开发,但它同样也可以在其它操作系统环境中编译运行,包括Windows、Mac OS X等。这个项目最早由Fabrice Bellard发起,现在由Michael Niedermayer维护。许多FFmpeg的开发人员都来自MPlayer项目,而且当前FFmpeg也是放在MPlayer项目组的服务器上。项目的名称来自MPEG视频编码标准,前面的"FF"代表"Fast Forward"。使用本播放器如果要对flv格式的文件进行播放则要安装FFmpeg。

2.1.3 Visual Studio .Net集成开发环境简介

.NET平台为创建新一代分布式Web应用提供了所有工具和技术(表示技术、构件技术和数据库技术)。.NET平台支持标准的Internet协议,包括HTTP(超文本传输协议)、XML(可扩展标记语言)和SOAP(简单对象访问协议)等,从而实现了异构系统间应用程序的集成和通信,即用户和供应商可将在此平台上开发的产品和服务无缝地嵌入自身的业务进程和日常活动的信息架构中。

.NET平台建立在开放系统结构基础之上,集Microsoft在软件领域的主要技术成就于一身。.NET平台包括一下4种核心技术:.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 Server、SQL Server等技术的开发工具包。

构建模块服务主要是Microsoft提供的COM+组件服务和XML Web服务技术,利用构建模块服务开发应用程序模块,可以迅速地组装一个功能完备的软件。

Visual Studio .NET是.NET平台的主要开发工具,由于.NET平台是建立在开放系统结构基础之上的,因此应用程序开发人员也可以使用其它开发工具。

2.1.4 C#语言简介

C#(#原为音乐标记,读Sharp)是一种面向对象的编程语言,主要用于开发可以运行在.NET平台上的应用程序。C#语言是微软公司开发的基于.NET Framework的一种编程语言,它继承了C/C++优良传统,又借鉴了Java的很多特点。微软对C#的定义是:“C#是从C和C++派生出来的一种简单、现代、面向对象和类型安全的编程语言。C#主要是从C/C++编程语言家族移植过来的,C和C++的程序员能够很

快熟悉它。C#试图结合Visual Basic的快速开发能力和C++的强大灵活的能力。”[2]

C#是2000年6月微软公司发布的一种全新编程语言,是由Anders Hejlsberg 和他的微软开发团队所设计,具体如下特点:

通用,支持跨平台。C#程序的客户端可以运行在不同类型的客户端上,如

PDA、手机等PC装置。

简单,主要体现在垃圾收集、指代等特性上。垃圾收集机制将减轻开发人员对内存的管理负担,而指代功能更是可以让开发者不经过内部类就调用函数。利用C#的这些功能,可以使开发者通过较少的代码来实现更强大的应用程序,并且能够更好地避免错误发生,从而缩短了应用系统的开发周期。

面向对象设计,C#具有封装、继承和多态等面向对象程序语言的特征。

与Web应用紧密的结合,C#支持绝大多数的Web标准,如HTML、XML、SOAP 等。这是C#最大的特点,使用它可以轻松开发各种企业级应用平台。

安全性机制,消除软件开发中常见错误(如语法错误),.NET提供的垃圾回收器能够帮助开发者有效的管理内存资源。

兼容性,C#遵循.NET的公共语言规范(CLS),能够保证与其它语言开发组件兼容。

灵活的版本处理技术,C#在语言本身内置了版本控制功能,开发人员可以更加容易地开发和维护。

C#提供了完善的错误和异常触发机制。

2.2 开发及运行坏境

硬件平台:

CPU奔腾双核 (主频2.0GHz)

内存1G

32位PC机

160G硬盘

软件平台:

操作系统:Windows XP \ Win7\Win8

开发工具:Visual Studio 2008。

本软件占用系统空间小,能满足用户对常见音频格式文件的播放要求,还具有歌曲、歌词下载等功能,界面美观交互性好,易于用户理解操作,且不依赖于其它软件,消耗资源少易维护,程序有较好的健壮性和正确性。运行该软件所需的坏境配置不高,能满足绝大多数用户的需求。

3 系统的分析

3.1 可行性分析

可行性研究(feasibility study)的目的,是弄清楚待开发的项目是不是可能实现和值得进行,通常由系统分析员完成,并需写出可行性论证报告。如结论认为可行,即可制定项目实施计划,同时开始软件开发;如结论认为不可行,则应提出终止该项目的建议。可行性论证其实是在高层次上进行的一次大大简化了的

需求分析与设计。但它的目的不是去解决用户提出的问题,仅是确定这项开发是否值得进行,分析它存在哪些风险。换句话来说,在投入大量精力前研究成功的可能性,减小可能出现的风险。即使研究的结论是不值得进行,所花的精力也并不浪费,因为它避免了一次更大的浪费。下面我们将根据本系统的特点具体描述以下可行性分析。[3]

3.1.1 经济可行性

开发一个基于计算机的系统主要是为了获取较好的经济效益和社会效益。因此对待开发系统的经济可行性论证就成为可行性研究的重要内容。成本-效益分析可用于评估系统的经济合理性,给出系统开发的成本估算,并将估算的成本与获得的利润进行比对,从经济的角度论证待开发系统是否可行。一般来说,基于计算机系统的成本主要由4部分组成:

1)购置并安装软硬件及有关设备的费用。

2)系统开发费用。

3)系统安装、运行和维护费用。

4)人员培训费用。

5)结合毕业设计的整个开发过程可知开发音乐播放器所需的全部软件平台都是免

费的,所以在经济上是完全可行的。

3.1.2 技术可行性

技术可行性是可行性研究的关键内容。由于系统分析和定义过程与系统技术可行性评估过程同时进行,此时系统的功能、性能和目标的不确定性会给技术可行性论证带来许多困难。因此,技术可行性研究往往是系统开发过程中难度最大的工作。该音乐播放器是用C#语音开发的,调试比较简单,所需的计算机硬件配置要求不高,一般PC机完全能满足开发要求。软件方面:基于微软.net开发平台使用C#面向对象的编程语音,它开发速度快,简单易用,技术成熟,软件也容易从网上获得,完全能满足开发需求。

3.1.3 法理可行性

法律可行性主要研究新系统的开发和使用是否会侵犯他人权益,是否触犯了国家的法律法规。本次的毕业设计是由本人独立完成,开发的系统不会侵犯任何人的权益,所用的软件都是通过合法途径获取,因此完全符合法律法规。

综上所述,本系统的开发从经济上、技术上、法律上都是完全可行的。

3.2 常见的几种音频格式及其特点

MP3格式:MP3的全称是Moving Picture Experts Group Audio Layer Ⅲ。MP3是Fraunhofer-IIS研究所的杰出成果。在MP3出现前,以有损方式进行音频编码最好的效果能够压缩到4:1。而强大的MP3可以实现12:1的高压缩比,正是因为这种性能的巨大提升,并且在实现高压缩比的同时还能够保持较好的音质,所以使得MP3迅速地流行起来。MP3是世界上第一个实用化的有损压缩编码方案,几乎所有的播放软件都支持它,也曾今产生了许多第三方的编码工具。MP3编码质量分为:(CBR),(ABR)和(VBR)。[4]

特点:音质好,压缩比比较高,被大量软件和硬件支持,应用广泛。

WMA格式:WMA就是Windows Media Audio编码后的文件,它是微软公司推出的与MP3格式齐名的一种新的音乐格式。WMA在压缩比和音质方面都超过了MP3,更是远胜于RA(Real Audio),即使在较低的采样频率下也能产生较好的音质。WMA 针对的不是单机市场,而是网络!竞争对手就是网络媒体市场中着名的Real Networks。WMA格式有非常高的压缩率,一般为1:18,因此它的文件所占空间比相应的MP3文件少一半。这是通过提高音质、减少数据流量的方法来实现更高的压缩率的。此外它还有很强的防盗版功能。

特点:低码率下的音质表现难有对手。[4]

WAV格式:WAV是微软Windows系统本身自带的音频格式,因为Windows系统的普及性,此格式已经成了当前最主流的音频格式之一。WAV文件里面存放的每一块数据都有自己独立的标识,通过这些标识可以告诉用户究竟是什么数据。WAV格式的设计非常灵活,该格式本身与任何媒体数据都不冲突,只要有软件支持,我们甚至可以在WAV格式里面存放图像。在Windows平台上,通过ACM结构及相应的驱动程序,例如CODEC编码/解码器,可以在WAV文件中存放超过20种的压缩格式,比如ADPCM、GSM、CCITT G.711、G.723和MP3等。[4]

特点:音质非常好,被大量软件所支持。

RA格式:RA格式是Real Networks公司所开发的一种新型流式音频Real Audio文件格式。这是网上接触得非常多的一种格式,大部分音乐网站的在线试听都采用了Real Audio,这种格式完全针对的就是网络上的媒体市场,支持非常丰富的功能。最大的优点就是这种格式可以根据听众的带宽来控制自己的码率,在保证流畅的前提下尽可能提高音质。[4]

特点:码率可控,支持多种音频编码,可边读边放。

3.3 需求分析

软件需求是指用户对目标软件系统在功能、性能、行为、设计约束等方面的期望。需求分析就是通过对应用问题及其坏境的分析与理解采用一系列的分析方法和技术将用户的需求逐步精确化、完全化、一致化,最终形成需求规模说明文档的过程。本节将从不同的角度描述系统的需求。

3.3.1 播放器的基本控制需求

在着手开发系统之前首先要明确该系统应该实现的一些最基本的功能,然后逐步细化,为每个功能创建一个模块,再对各个模块进行开发。通过分析我们得出一款音乐播放器的基本控制如图3-1所示:

图 3-1 播放器基本控制图

3.3.2 功能需求

功能需求规定开发人员必须在产品中实现的软件功能,用户利用这些功能来完成任务,满足业务需求。功能需求有时也被称作行为需求(behavioral requirement),因为习惯上总是用“应该”对其进行描述。功能需求描述是开发人员需要实现什么。功能需求定义一个软件系统或组件的功能,也是一个系统需提供的功能及服务。功能可以用一组输入、行为及输出的组合来表示。功能需求

可以是计算、技术细节、数据处理或其他说明系统希望达成功能的内容。功能需求会以非功能性需求(或是质量需求)为其基础。

结合音乐播放器所要实现的内容,我们列出用户操作的模块,其中每个模块对应一个功能。

用户启动程序进入主界面,用户可以通过添加模块添加本地歌曲,可以一首一首添也可以添加整个歌曲文件夹。通过播放列表用户可以实现对歌曲的查找、播放、暂停、音量调节、静音。通过歌词模块可以实行歌曲歌词的显示、比对、歌词字体选择。

此外用户还可以联网下载歌词、歌曲。其功能模块时序图如下3-2所示:

图3-2 音乐播放器功能时序图

4 系统设计

4.1 系统概要设计

在需求明确、准备开始编码之前,要做概要设计。概要设计的主要任务是把需求分析得到的DFD转换为软件结构和数据结构。设计软件结构的具体任务是:将一个复杂系统按功能进行模块划分、建立模块的层次结构及调用关系、确定模块间的接口及人机界面等。数据结构设计包括数据特征的描述、确定数据的结构特性、以及数据库的设计。概要设计有多种方法。在早期有模块化方法、功能分解方法;在60年代后期提出了面向数据流和面向数据结构的设计方法;近年来又提出面向对象的设计方法等。本系统采用模块化软件设计,自顶向下逐层把软件系统划分成若干模块。每个模块完成一个特定的功能,最后将所有模块按照某种方法组合成一个整体,达到整个播放器所要求的功能。

4.2 系统功能设计及描述

本音乐播放器不仅要实现对一些常见的音频格式文件的播放,而且还要有友好的用户界面。其最终设计目标是:实现对多种音频格式文件的播放、实现对歌词的滚动播放及当前播放曲目长度显示、显示歌曲文件信息、实现静音和音量控制;播放器软件占用系统资源少、运行平台要求不高、界面美观舒适、操作简单、易维护、高稳定性、,能满足用户的常见需求。

主要划分为以下七个功能模块,每个功能模块的作用描述如下:

播放控制:控制歌曲的播放状态,如:播放、暂停、上一曲、下一曲。播放过的歌曲按播放顺序排列在播放列表中,每次退出程序、重启播放器后播放列表中的播放记录会自动保存不会清空。

文件控制:主要用来打开本地播放文件。通过研究音频编码解码的相关技术,了解音频编码解码的原理和过程,本音乐播放器支持常见音频格式文件播放如:MP3、WMA、WAV等。可以单个曲目添加,也可以将整个文件夹中的曲目全部添加,实现歌曲文件添加的多样化;此外还可以对播放列表进行清空,对曲目的播放顺序进行控制;当播放列表中曲目过多时,可以从播放列表中快速搜索到需要播放的歌曲。还有对播放列表进行控制如:打开文件所在目录、移除列表、删除文件、显示歌曲文件的相关信息,如:歌手、专辑等。

歌词控制:播放音乐时控制是否显示歌曲歌词,若歌词存在则同步滚动显示歌词,若歌词不存在则可联网下载歌词。此外还可以对歌词字体进行设置。

进度控制:显示当前歌曲的播放总时长和已播放时长,可以通过鼠标调整歌曲的播放进度,实现歌曲的跳跃式播放。其实现方式是通过进度条和时间的同步显示。

声音控制:调整歌曲音量的大小,显示是否静音。

下载控制:可以联网下载自己喜欢的歌曲、歌词。若不知道歌曲名称则可以按歌手名查找歌曲下载,若知道歌曲名则可直接输入名称进行下载,可以在下载进度列表中查看下载状态。

音乐剪切:对音乐文件进行剪切。添加当前路径,对想要的歌曲进行播放,在歌曲播放过程中你可以在任何地方设置一个起点,然后,再设置一个终点。

“试听歌曲”就是把你选出来的这一段播放一遍,看是不是你要的那一段,有时候可以早开始了几秒或者早结束了几秒,这个时候可以直接在起点和终点的地方进行调整。然后在这个窗口的上面有个“保存歌曲”,就可以把你选出来的这段音乐保存起来了。我们可以通过歌曲剪切功能截取自己喜欢的音乐片段,来做为自己的手机铃声。

其具体功能模块如图4-1所示:

图4-1 音乐播放器功能模块图

5 系统功能实现

根据上一章对系统各个模块的分析,本节主要讲述如何具体实现这些模块功能。

几乎所有的Windows程序都离不开窗体,Windows窗体应用程序是Windows下进行软件开发的基础。在C#中,通过Visual Studio 2008开发平台模版,可以自动生成多种基于Windows的应用程序框架,主要包括基于.NET Framework的Windows窗体应用程序、Windows服务应用程序。最常用的是Windows窗体应用程序。在Windows窗体应用程序中,有窗体(Form)和控件(Control)两个基本概念。窗体是控件的容器,控件是应用程序显示数据或接受数据输入的相对独立的用户界面元素。.NET类库提供了丰富的窗体相关类,包括窗体、按钮、状态栏、工具栏、菜单、文本框、列表等多种不同的界面元素;此外还提供各种控件、组件、容器。通过这些界面元素的不同组合,可以设计出友好的用户界面。对于软件开发中要用到的图片可以自己绘制,相关控件可以调用类库,从而设计出外形美观的界面。但这也做相当费时,由于毕业设计的时间有限,图片都从网上下载,并做稍微处理,所以美观方面有一定欠缺,待以后有时间慢慢改进。此外界面是由窗体、控件拖放组成,大部分代码由视图设计器自动生成,无需太多改动,因此这一部分不再详细阐述,下面将主要介绍主要功能模块的核心代码实现。

5.1 歌曲添加模块

很多的应用程序都有打开文件功能,本程序使用OpenFileDialog组件,用来打开本地磁盘上的一个或多个文件,并添加到文件播放列表中。

5.1.1 添加歌曲文件

为了赶上社会的潮流,我们经常会从网上下载最热门的音乐,本模块功能就是实现添加本地歌曲或已下载到电脑的最新歌曲到播放列表,同时更新播放列表,使我们能及时欣赏到自己喜欢的音乐。其具体代码如下:

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 (ofd.ShowDialog() == DialogResult.OK)

{

string strLongPath = ofd.FileName;

WriteFileByLongPath(strLongPath);

}

}

private void WriteFileByLongPath(string strLongPath)

{

int b = https://www.sodocs.net/doc/255505639.html,stIndexOf("\\");

string strShortPathWithExtension = strLongPath.Substring(b + 1);

StreamWriter sw = new 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, strShortPathWithExtension.Length - 4);

Mp3mp3 = new Mp3(strLongPath);

if (!(String.IsNullOrEmpty(mp3.Artist) ||

String.IsNullOrEmpty(mp3.Title)))

{//获取成功的结果(歌手名 - 歌曲名)

strShortPathWithoutExtension = mp3.Artist.Trim() + " - " + mp3.Title.Trim();

}

//否则原文件名

(!this.myListBox.Items.Contains(strShortPathWithoutExtension))

{//不包含

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;

sw.WriteLine(strShortPathWithoutExtension);

sw.WriteLine(strLongPath); //写入全路径

}

}

sw.Flush();

sw.Close();

}

5.1.2 添加歌曲文件夹

当我们要欣赏歌曲专辑时,可能要添加的文件比较多,显然单曲添加比较麻

烦,这时我们就可以使用OpenFileDialog组件的Multiselect属性和Filenames

属性实现整个文件夹的添加,同时更新播放列表。代码如下:

private void tsmiAddSongFolder_Click(object 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);

}

{

string strLongPath = i.FullName;

WriteFileByLongPath(strLongPath);

}

}

}

private void tsmiSearch_Click(object sender, EventArgs e)

{

if (this.mySearchPanel.boolSearchShow)

{//已经打开,则关闭

this.mySearchPanel.close();

}

else

{

this.mySearchPanel.boolSearchShow = true;

this.mySearchPanel.lb = this.myListBox;

this.mySearchPanel.copyValueList();

}

initialSearchPanel();

}

图5-1 打开文件

5.2 歌曲列表模块

播放列表主要用来显示要播放歌曲的信息,如歌手、照片、曲名。在这里我们使用ListBox控件来实现相关功能。详细代码如下:

this.myListBox.Anchor =

((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyle s.Top | System.Windows.Forms.AnchorStyles.Bottom)

| System.Windows.Forms.AnchorStyles.Left)));

this.myListBox.DrawMode =

System.Windows.Forms.DrawMode.OwnerDrawVariable;

this.myListBox.FormattingEnabled = true;

this.myListBox.Location = new System.Drawing.Point(2, 115);

https://www.sodocs.net/doc/255505639.html, = "myListBox";

this.myListBox.Size = new System.Drawing.Size(302, 354);

this.myListBox.TabIndex = 0;

this.myListBox.MouseDown += new

System.Windows.Forms.MouseEventHandler(this.myListBox_MouseDown); private void myListBox_MouseDown(object sender, MouseEventArgs e)

{

if (this.myListBox.thisIndex != -1)

{

if(e.Button== System.Windows.Forms.MouseButtons.Right) {

this.myListBox.ContextMenuStrip = this.cmsListBox;

}

}

}

图5-2播放列表

5.3 播放控制模块

播放是音乐播放器最重要的功能。本程序使用Windows Media Player命名空间中定义的属性和方法来实现歌曲的播放、暂停、上下去切换等。其核心代码如下:

private void initialBtn()

{

if (playStatue == MediaPlayer.PlayStatue.播放)

{ //正在播放,暂停图片

btnPlay.Image = Image.FromFile("pic\\pause.bmp");

}

else if (playStatue == MediaPlayer.PlayStatue.暂停 || playStatue == MediaPlayer.PlayStatue.停止)

{//开始播放图片

btnPlay.Image = Image.FromFile("pic\\play.bmp");

}

if (this.boolVolumn)

{

this.btnVolumn.Image = Image.FromFile("pic\\02.gif");

}

else

this.btnVolumn.Image = Image.FromFile("pic\\01.gif");

}

private void nextSongPlay()

{

//下一曲

if (playStyle == MediaPlayer.PlayStyle.随机播放)

{//选择随机播放时就产生一个随机数组,播放记录,根据数组,上一

曲下一曲都有用

if (randomIndex + 1 >= randomList.Count)

{

randomSongPlay();

}

else

this.myListBox.doubleClickIndex =

(int)randomList[++randomIndex];

}

else if (playStyle == MediaPlayer.PlayStyle.顺序播放) {

this.myListBox.doubleClickIndex++;

if (this.myListBox.doubleClickIndex >=

this.myListBox.Items.Count)

{

playStatue = MediaPlayer.PlayStatue.停止;

this.myListBox.doubleClickIndex =

this.myListBox.Items.Count - 1;

stop();

initialBtn();

return;

}

}

else

{//下一曲,如果到底,将播放第一首歌曲,全部循环

this.myListBox.doubleClickIndex++;

if (this.myListBox.doubleClickIndex >=

this.myListBox.Items.Count)

{//转第一首

this.myListBox.doubleClickIndex = 0;

}

}

btnChangeSong();

initialBtn();

}

private void lastSongPlay()

{

if (playStyle == MediaPlayer.PlayStyle.随机播放 && randomIndex >= 1)

{

this.myListBox.doubleClickIndex = (int)randomList[--randomIndex];

}

else if (playStyle == MediaPlayer.PlayStyle.顺序播放)

{

this.myListBox.doubleClickIndex--;

if (this.myListBox.doubleClickIndex <= -1)

{

this.myListBox.doubleClickIndex = 0;

playStatue = MediaPlayer.PlayStatue.停止;

stop();

initialBtn();

return;

}

}

else

{

this.myListBox.doubleClickIndex--;

if (this.myListBox.doubleClickIndex <= -1)

{//转最后一首

this.myListBox.doubleClickIndex =

this.myListBox.Items.Count - 1;

}

}

btnChangeSong();

}

5.4 音量控制模块

通过调节音量大小来达到歌曲播放的最佳状态。可以调用API函数SENDMESSAGE APPCOMMAND_VOLUME_MUTE和TrackBar 类来实现音量控制。代码如下:

private void btnVolumn_Click(object sender, EventArgs e)

{

IniUtility.FilePath= Application.StartupPath+ "\\INI.ini";

if (this.boolVolumn)

{

player.setAudioOnOff("off");

this.boolVolumn = false;

IniUtility.WriteIniKey("Player", "boolVolumn", "0");

}

else

{

player.setAudioOnOff("on");

this.boolVolumn = true;

IniUtility.WriteIniKey("Player", "boolVolumn", "1");

}

initialBtn();

}

private void myTBVolumn_Scroll(object sender, EventArgs e)

{

IniUtility.FilePath= Application.StartupPath+ "\\INI.ini";

int value = this.myTBVolumn.Value;

player.SetVolume(value);

IniUtility.WriteIniKey("Player", "Volume",

value.ToString());

}

5.5 进度控制模块

进度控制用来显示歌曲的播放进度,也可以通过鼠标拖动实现歌曲的任意播放,通过把当前播放长度和进度条同步结合起来实现。此外还能够显示歌曲的播

放时长,这是通过Timer组件的Tick事件实现。其主要代码如下:

private void myTBPlayProcess_MouseDown(object sender, MouseEventArgs e) {

player.setPlayPosition(this.myTBPlayProcess.Value);

this.lblTime.LblCurSecond = this.myTBPlayProcess.Value;

}

private void changeCurSecond(int value)

{

this.myTBPlayProcess.Value = value;

this.showLrc.curPlayTimeSecond = value;

}

5.6 滚动字幕模块

有很多音乐播放器都可以实现一边听音乐一边看歌词的功能,这样做可以帮助用户更好地欣赏音乐,同时还可以强化对歌词的记忆进而达到背诵,为听者以后

独唱歌曲做铺垫。此外还可以对歌词字体进行设置,从而达到视觉和听觉的双重

享受。其核心代码如下:

public partial class ShowLrc : Form

{//歌词文件名就是ListBox中项的名称

public ShowLrc()

iOS 音乐播放器 毕业设计

1引言 1.1选题背景 随着智能手机的大众化,越来越多的人应用智能手机。相对的对手机软件的需求也就越来越多。当今时代手机不再只是用来打电话、发短信的工具,反而对手机的娱乐功能要求越来越高[1]。手机的一个重要的功能就是听音乐,一款好的手机音乐播放器可以更好的体现智能手机的强大。目前中国音乐播放器行业已经具备了相当的规模,并在国际市场上已有一定的竞争力。苹果手机作为当今中国智能手机市场上不可或缺的一个品牌,基于iOS的手机软件需求量也就相应的越来越强。市场上的音乐播放器品牌繁多,定位不一,基本满足了各层次消费者的需求,例如:酷我音乐、酷狗音乐、百度音乐、QQ音乐等等这些大家所熟知的音乐播放器已经在苹果软件中占据了一定的地位。智能手机的应用使现代人的生活更加的方便。 伴随着苹果手机进入中国市场,相应的iOS技术逐渐流行起来。而对于开发苹果应用的语言——Object-C,也成为当今社会最流行的开发语言,并且保持着强劲的上升趋势,隐隐有超过C语言的现象[2]。对于其他的开发语言,例如java、javascripe,Object-C以其强大的优势遥遥领先于这些其他的编程语言。本人根据当前的形式,决定引用这种这种技术来开发手机应用。 1.2设计目的及意义 听音乐已经成为当今社会,人们必不可少的一项娱乐活动。根据调查所得信息,本人发现最近智能手机用户对较大的音乐播放器应用的喜爱度明显下滑,而相对的那些小巧的音乐播放器反而被越来越多的用户下载使用。苹果系统的软件具有的特点就是美观、简洁、易操作。根据这些信息,设计一款小巧的基于iOS 的音乐播放器会很容易得到用户的青睐。同时本人从去年开始接触iOS,在学习了几个月后,对iOS开发有了一些理解,所以对于这次毕业设计,我就选择了基于iOS系统开发一款产品。希望通过这次毕业设计来进一步巩固自己的iOS开发水平。使自己在以后的社会竞争中更加具有优势。 1.3设计思想和目标 设计思想:自己的这款音乐播放器设计的过程是按照一般的应用开发流程进行的。自己首先调查了当今社会,人们对音乐播放器的需求,从中得出现阶段手机用户需要的是小巧、方便的音乐播放器。从而决定自己开发一款小巧的音乐播放器。在有了用户的需求后,本人开始开发属于自己的音乐播放器。在真正设计音乐播放器的过程中,本人先决定了音乐播放器的整体框架结构,应用的图片出

音乐播放器设计实习报告

《.net技术》实习报告带智能关机和查看日历功能的音乐播放器设计班级:指导老师: 姓名:学号: 设计时间:

正文开始 设计目的: 很多人在使用播放器的时候下载的播放器软件总是比较大,一般软件较大的打开就会比较慢,运行起来也没较小的软件运行的更“流畅“。而且当我们使用播放器的时候或是只用电脑的时候我们有时会忘记关掉电脑就离开或是睡着了!虽然电脑自带的操作系统也可以设置定时关机但比较麻烦,对电脑初学者更是不知道怎么使用操作系统设置定时关机啦!还有就是我们电脑桌面下的时钟一般只显示了几点钟,并没有显示今天是多少号,所以在影月播放器中添加一个可以查看日历的功能是很必要的! 实现的功能: 在这里我就为大家设计一款小巧的音乐播放器,同时还带有智能关机功能,所谓智能关机就是你想怎么时候关机就什么时候关机,你想立刻关机就立刻关机,想定时关机就可以自己设置关机时间,设置方法非常的简单啦。同时你只需要单击一下一个“三角图标键”(在下面还将结合图示提到)就可以看到日历表了,在日历表里你也可以选择查看你需要的那个月的日历表。同时我也在播放器中添加了显示现在时钟的功能。 下面介绍一下我设计的播放器的所有功能:首先你可以通过“添加文件夹”按钮添加你选择的文件夹内的所有音频文件,你也可以通过“添加文件”按钮单个添加你所要添加的音频文件,具体方法在下面我会给出截图加以说明,保证一看就懂,就会用。添加音乐文件后你就可以在你的播放列表里看到你添加的歌曲名了。你可以通过双击列表中的歌曲名进行播放你双击的歌曲或者单击选中列表中歌曲名后再单击播放按钮进行播放。在播放时你可也看到正在播放的歌曲名和播放进度,这里的播放进度使用显示正在播放的歌曲“已经播放了多长时间”和这首歌要播放的“总时间”,还有就是上一曲、暂停、下一曲、停止,除实现播放的基本功能外,还有一个功能那就是我在上面给大家提到的“智能关机” 物体规则震动发出的声音称为“音乐”,由有组织的乐音来表达人们思想感情、反映现实生活的一种艺术就是音乐,音乐是一种符号,声音符号,表达人的所思所想,音乐能表达一个人的内心世,界音乐能是人快乐,能使人放松心情。为了方便人们能够听到美丽的音乐,音乐播放器就成为我们的音乐大师了。 设计好的播放器运行时如下图:

音乐播放器的详细设计

音乐播放器详细设计 1.引言 随着社会的快速发展,现今社会生活紧张,而欣赏音乐是其中最好的舒缓压力的方式之一,音乐成了我们生活工作中的一个重要的部分。而3G时代的到来,手机移动应用越来越普遍。此文档就是为了能更好地设计出一个基于android系统的音乐播放器而编写的。 1.1 编写目的 为软件的开发者能更好的理解和明确软件开发的详细过程,安排项目与进度、组织软件开发与测试,撰写本文档。本文档供项目组成员,软件开发人员参考。1.2项目背景 本项目由李雪梅、杨挺等人提出,由本组成员联合开发,实现播放现今流行的音乐MP3等文本格式。 该软件是基于Android系统的音乐播放软件,并能够与其他音乐播放软件兼容。 1.3 参考资料 [1] 重庆大学出版社《软件工程》“软件计划与可行性分析” [2] 靳岩、姚尚明人民邮电出版社《Android开发入门与实践》 [3] 可行性分析 [4] 《音乐播放器需求分析书》 [5] 《音乐播放器总体设计说明书》 1.4项目开发计划 实施计划:

阶段名称负责人 需求分析杨挺、李雪梅 总体设计李雪梅、杨挺 详细设计李雪梅、杨挺 软件测试李雪梅、杨挺 在技术方面,编程知识比较缺乏,对有些与项目相关的软件 不熟悉,需进行人员的技术培训(自学为主),技术难点是数据库的构架和软件功能的设计。 2. 总体设计 2.1 项目目的 本项目的目的是开发一个可以播放主流的音乐文本格式的播放器。设计的主要实现功能是播放MP3等格式的音乐文件,并且能控制播放,暂停,停止,音量控制,选择上一曲,选择下一曲,更改皮肤,歌曲列表文件的管理操作,在线播放,读取 存储卡播放等多种播放控制,界面简明,操作简单。 软件系统检测到错误行为时,报告错误,并提示处理操作。 2.2 软件运行环境 硬件:Android操作系统手机 系统软件:Android 2.2 -- 4.0版本 支撑软件:Eclipse 7.5 、ADT 1.5 2.3 需求概述

音乐播放器毕业设计

摘要 在信息,技术高速发展的今天,多媒体技术也越来越受到人们的重视。文章对目前使用较多的音乐播放器作出较详细的比较。通过阅读多张文献,分析了一些音乐播放器的功能并考虑了怎样能实现支持更多格式的音乐文件,怎样能满足使用者对播放器的需求。本文主要介绍了一个基于Java Applet来实现的音乐播放器的设计。并对系统开发中涉及到的关键技术作了探讨,简要分析介绍了Java技术和 Applet的工作原理,最后说明系统需要实现的功能。 音乐是一种声音符号,表达人的思想感情。是人们思想的载体之一。音乐是有目的和内涵的,其中隐含了作者的生活体验,思想情怀。一款好的pc音乐播放器不仅能够提供好的音乐播放效果,更能够为用户提供方便的操作。 本设计利用java语言和eclipse 编辑工具对播放器进行编写。同时给出了详细的系统设计过程、部分界面图及主要功能运行流程图,本文还对开发过程中遇到的问题和解决方法进行了详细的讨论,该音乐播放器集播放、暂停、停止、快进、快退、下一曲、上一曲、音量调节等功能与一体,性能良好。该播放器支持MP3、WAV、MP3和AIFF等音频格式。在开发的过程中采用瀑布模型。第一阶段首先对项目进行全面、仔细的需求分析,并准确做出项目进度安排,明确每个阶段的任务;第二阶段是进行项目分模块编码;第三阶段对项目进行全面的测试和系统集成测试。 关键词: JAVA;Eclipse;模块化; Applet;

Abstract In the information,the rapid development of technology today,the multimedia technology is becoming more and more attention.This paper makes comparison of the detail to the current use of more music player.By reading a plurality ofliterature,analysis of some function of music player and consider how to achieve the support more format music files,how to meet the needs of users of the player.This paper mainly introduces the design of a Java based Applet to achieve music player.And the key technologies involved in the system development are discussed and analyzed brieflyintroduces the work principle of Java technology and Applet,finally indicated that the system needs to realize the function. The music is a sound symbolic expressing the mood and thinking. It is the carrier of people's thinking. Music is the purpose and content, which implied the au thor's life experiences and feelings. A good pc music player can not only provide g ood music playing effect, but also provide users with convenient operation. The player is using java language and eclipse editing tools. Giving a detailed s ystem design process, part of the interface map and run flow chart of the main fun ction, this article discussed in detail on problems and solution method in the devel opment process. The music player set to play, pause, stop, fast forward, rewind, a nd the next one, on a volume adjustment functions with one good performance. Th e player supports MP3, WAV, MP3, AIFF, etc. audio formats. The model in the dev elopment process is Waterfall model. The first phase is the project of comprehensi ve and careful needs analysis, accurately making the project schedule and clearin g each stage of the task. The second phase of the project is sub-module coding. T he third stage, the project testing and system integration testing. key words:JAVA ;Eclipse;Modularization; Applet;

嵌入式MP3播放器的设计

嵌入式MP3播放器的设计 1 系统概述 本文采用STM32系列微控制器,结合解码芯片VS1003、SD卡、LCD等外围设备设计并实现了MP3播放器。其主要功能有:播放VS1003支持的所有音频文件,如MP3、WMA、WAV文件,且音质非常好;通过触摸屏实现按键功能,控制播放上一首/下一首、音量增减等;通过LCD显示歌曲名字和播放状态;本系统还实现了读卡器功能,PC机可通过USB接口直接对开发板上的SD卡进行读写操作,以方便拷贝音频文件。 MP3播放过程是STM32通过SPI1接口将数据从SD卡中取出,然后通过SPI2接口送至解码芯VS1003解码播放。这里解码模块单独使用一个SPI接口,以减小干扰和噪声、提高音质。 2 系统硬件设计方案 本系统在硬件上分为6个模块: 微控制器STM32F103、解码模块VS1003、存储模块SD卡、触摸屏、USB接口和显示屏LCD。系统硬件框架如图5所示。 VS1003 STM32 图5 系统硬件框架图 2.1 存储模块设计 SD卡在现在的日常生活与工作中使用非常广泛,时下已经成为最为通用的数据存储卡。在诸如MP3、数码相机等设备上也都采用SD卡作为其存储设备。SD卡之所以得到如此广泛的使用,是因为它价格低廉、存储容量大、使用方便、通用性与安全性强等优点。SD卡支持两种总线方式: SD方式与SPI方式。其中SD 方式采用6线制,而SPI方式采用4线制,采用单片机对SD卡进行读写时一般都采用SPI模式。可用不同的初始化方式使SD卡工作于SD方式或SPI方式。 在本设计中,音频数据MP3文件是以SD卡为载体。所以在电路设计中必须含有读取SD卡模块。该系统使用STM32内部接口SPI1与SD卡进行通信,下面介绍其引脚连接情况。 PE3:低电平有效,连接到SD卡的片选引脚CD/DAT3。SPI在和SD卡进行通

基于51单片机的音乐播放器设计

题目:音乐播放器 课程设计(论文)任务书

摘要 随着电子技术的发展和计算机越来越普遍的使用,单片机作为这两项技术的有机结合也得到了广泛的应用,在某些领域具有不可替代的作用。音乐播放功能随处都会用到,如,在开发儿童智力的玩具中,等等。目前,基于单片机实现音乐播放,其体积小、价格低、编程灵活等特点在这一领域独领风骚。 单片机的英文名称为single chip microcomputer,最早出现在20世纪70年代,国际上现在已逐渐被微控制器(Microcontroller Unit 或MCU)一词所取代。它体积小,集成度高,运算速度快,运行可靠,功耗低,价格廉,因此在数据采集、智能化仪表、通讯设备等方面得到了广泛应用。而8051单片机在小到中型应用场合很常见,已成为单片机领域的实际标准。随着硬件的发展,8051单片机系列的软件工具也有了C级编译器和实时多任务操作系统RTOS,为单片机编程使用C语言提供了便利的条件;并针对单片机常用的接口芯片编制通用的驱动函数,可针对常用的功能模块,算法等编制相应的函数;C语言模块化程序结构特点,可以使程序模块大家共享,不断丰富,这样就使得单片机的的程序设计更简单可靠,实时性强,效率高。作为测控技术与仪器的学生,掌握8051单片机硬件基础及其相关软件操作,将其应用于现代电子产品中是必要而且重要的,这次课程设计我们的题目是用单片机实验箱系统制作音乐播放器。 本次课程设计主要内容是通过单片机C51语言进行编程,以产生乐曲音符和节拍,把乐谱翻译成计算机语言(音符转换诚成相对应的方波频率即定时器装载初值,节拍转换成相对应的延长时间),并将其预先存储到单片机里,然后根据按键调用再由单片机进行信息处理,在经过信号放大,由喇叭放出乐曲声,实现音乐播放的功能。其主要表现在可以播放十首歌曲,可以用十个数字键控制播放的歌曲,并且能在LCD液晶屏显

音乐播放器Java课程设计报告

课程设计报告课程设计题目:java音乐播放器 学生姓名: 专业:XXXXXXXXXXXXX 班级: 指导教师: 20XX年X月X日

一、课程设计目的 1、编程设计音乐播放软件,使之实现音乐播放的功能。 2、培养学生用程序解决实际问题的能力和兴趣。 3、加深java中对多媒体编程的应用。 二、课程设计的要求 利用学到的编程知识和编程技巧,要求学生: 1、系统设计要能完成题目所要求的功能,设计的软件可以进行简单的播放及其他基本功能。 2、编程简练,可用,尽可能的使系统的功能更加完善和全面 3、说明书、流程图要清楚。 三、课程设计内容 1、课程设计的题目及简介 音乐播放软件要求: 有图形界面,能播放MP3歌曲,有播放列表,前一首、后一首等常用播放软件功能。 2、设计说明 主要运用多媒体编程、图形界面、数组及循环进行设计,从而实现简单的音乐播放。 public MyMusicPlayer():实现窗口的成员方法 publi c void run():实现改变歌曲的播放状态的成员方法 public AudioClip loadSound(String filename):实现对声音的加载public void mouseClicked(MouseEvent e):实现对按钮的监听public void itemStateChanged(ItemEvent arg0):返回一个AudioClip 对象

3、程序流程图 4、程序清单 import java.awt.*; import javax.swing.*; import java.applet.*; import java.awt.event.*; import https://www.sodocs.net/doc/255505639.html,.*; public class MyMusicPlayer extends Thread implements MouseListener,ItemListener{ JFrame MainFrame=new JFrame("MyMusicPlayer"); //定义主窗体 JLabel songname=new JLabel(); //用标签 显示状态 JButton last=new JButton(); JButton play=new JButton();

音乐播放器的设计与实现

德州学院信息管理学院 课程设计报告实习名称课程设计2 设计题目Android音乐播放器的设计与实现实习时间 专业班级12级计算机科学与技术 指导老师刘想 教学单位(盖章) 小组成员分工情况: 学号姓名分工 3018 周生明音乐播放的设计与实现1052曹法瑞 1040 张正奎 1055 李元华 2049 王山 二〇一五年六月三十日

目录 摘要 ................................................................................................................ 错误!未定义书签。 1 引言 ............................................................................................................ 错误!未定义书签。 2 可行性分析................................................................................................. 错误!未定义书签。 2.1 技术可行性...................................................................................... 错误!未定义书签。 2.2 经济可行性...................................................................................... 错误!未定义书签。 2.3 管理可行性...................................................................................... 错误!未定义书签。 2.4 可行性分析结论.............................................................................. 错误!未定义书签。 3 系统需求分析............................................................................................. 错误!未定义书签。 3.1 功能分析.......................................................................................... 错误!未定义书签。 3.2 数据流程分析.................................................................................. 错误!未定义书签。 4 系统功能设计............................................................................................. 错误!未定义书签。 4.1 播放器功能结构.............................................................................. 错误!未定义书签。 4.1.1 播放器主界面功能模块....................................................... 错误!未定义书签。 4.1.2 播放器菜单功能模块........................................................... 错误!未定义书签。 4.2 播放器功能流程.............................................................................. 错误!未定义书签。 5 系统实现..................................................................................................... 错误!未定义书签。 5.1 播放器主界面功能列表.................................................................. 错误!未定义书签。 5.2 播放器基本功能的实现.................................................................. 错误!未定义书签。 5.3 播放列表的实现.............................................................................. 错误!未定义书签。 6 软件测试与验证......................................................................................... 错误!未定义书签。 6.1 软件测试的目的.............................................................................. 错误!未定义书签。 6.2 软件测试的方法.............................................................................. 错误!未定义书签。 6.3 软件测试环境.................................................................................. 错误!未定义书签。 6.3.1 android模拟器 ...................................................................... 错误!未定义书签。 6.3.2 真机测试............................................................................... 错误!未定义书签。 6.4 软件测试流程与结果评估.............................................................. 错误!未定义书签。 6.4.1 测试流程............................................................................... 错误!未定义书签。 6.4.2 结果评估............................................................................... 错误!未定义书签。

音乐播放器设计文档

生产实习报告 题目:音乐播放器 学生姓名:张凡 学号: 201220220123 班级: 1222201 专业:数字媒体技术 指导教师:张金 2015年08 月08日

目录 一、引言 (3) 1.1 项目背景 (3) 1.2 项目研究的目的 (4) 1.3 安卓简介 (4) 二.功能分析 (5) 2.1 功能需求分析 (5) 2.2 系统性能需求 (6) 2.3 运行环境需求 (6) 三.程序详细设计 (6) 3.1 主界面的设计 (6) 3.2 播放界面设计 (11) 3.3 其他功能 (14) 四.调试与运行 (18) 4.1 调试 (18) 4.2 运行结果 (19) 五.总结 (21)

一、引言 1.1 项目背景 当今社会的生活节奏越来越快,人们对手机的要求也越来越高,由于手机市场发展迅速,使得手机操作系统也出现了不同各类,现在的市场上主要有三个手机操作系统,symbian,Windows mobile,以及谷歌的Android操作系统,其中占有开放源代码优势的Android系统有最大的发展前景。那么能否在手机上拥有自己编写的个性音乐播放器呢?答案是:肯定的,谷歌Android系统就能做到。本文的音乐播放器就是基于谷歌Android手机平台的播放器。 随着计算机的广泛运用,手机市场的迅速发展,各种音频视频资源也在网上广为流传,这些资源看似平常,但已经渐渐成为人们生活中必不可少的一部分了。于是各种手机播放器也紧跟着发展起来,但是很多播放器一味追求外观花哨,功能庞大,对用户的手机造成了很多资源浪费,比如CPU,内存等的占用率过高,在用户需要多任务操作时,受到了不小的影响,带来了许多不便,而对于大多数普通用户,许多功能用不上,形同虚设。针对以上各种弊端,选择了开发多语种的音频视频播放器,将各种性能优化,继承播放器的常用功能,满足一般用户(如听歌,看电影)的需求,除了能播放常见格式的语音视频文件,高级功能:还能播放RMVB格式的视频文件。此外,还能支持中文、英文等语言界面。

基于单片机音乐播放器课程设计报告书

目录 第一章绪论 (1) 第二章音乐播放器主要器件相关知识介绍 (2) 2.1 AT89C51 (2) 2.2 LCD 显示器 (4) 2.3 喇叭 (5) 2.4 键盘 (5) 第三章音乐播放器设计原理 (6) 3.1 单片机发声的基本原理 (6) 3.2 设计的相关音乐说明 (7) 3.3 音乐播放器设计功能说明 (7) 3.4 设计结构框图 (9) 3.5 主程序控制的工作流程图 (10) 3.6 播放音乐的主程序 (11) 设计心得 (15) 参考文献 (15)

第一章绪论 二十世纪九十年代以来,计算机、信息、电子、控制、通信等技术得到迅速发展,促使了社会生产力的提高,也使人们的生产方式和生活方式产生了日新月异的变化。随着人们生活水平的提高及对音乐的喜爱,对音乐播放器的品质,功能,品种等提出了越来越多的要求,表现在对控制系统性能、可靠性等要求越来越高。而品质的提高,功能的更新,可靠性的增强,品种的变化无不于产品的核心控制部分水平的提高密不可分。家用音乐播放器产品及其它有关消费电器产品都是一些开环或闭

环控制系统,都由核心控制部分,执行部分与人机界面三部分组成。而最为重要的控制部分一般是由单片机来执行完成的,这就必将导致和促进单片机在音乐领域应用的发展。现在这些由单片机实现的音乐播放器的功能越来越强、费用越来越低。例如,就市场上的mp3目前的功能越来越强大体积却越来越小,价格也逐渐便宜,被大多数人所能接受。但这些音乐播放器也或多或少的存在着一些问题,解决这些问题,还除智能化的单片机莫属。 设计指标: (1)设计一个(4×4)的键盘,并将16个键设计成16个音; (2)可弹奏想要表达的音乐; (3)该电子琴包含1首示例音乐,接通电源可播放示例音乐。 设计要求: (1)按设计指标进行电路设计; (2)列出音阶与单片机定时器输出频率关系表格; (3)制作符合设计指标的硬件电路。

设计文档 (AW音乐播放器)

2015年华北五省(市、自治区)及港澳台大学生计算机应用大赛移动终端应用创意与程序设计 (应用类样例) 【项目名称】AW音乐所在学校:天津商业大学宝德学院所在赛区:天津赛区 团队名称:三个臭皮匠 团队成员:安兴悦王璐瑶王鹤 提交日期:2015.10.12

目录 一、作品概述 (1) 二、作品可行性分析和目标群体错误!未定义书签。 (1)可行性分析 ...... 错误!未定义书签。(2)目标群体 .......... 错误!未定义书签。 三、作品功能与原型设计 (2) (1)功能概述: (2) (2)原型设计 (3) 四、作品实现、难点及特色分析 (5) (1)作品实现及难点 (5) (2)特色分析 (5) 五、团队介绍和人员分工 (5) 六、其他 (6) 七、致谢 (6)

一、作品概述 在这个互联网普及的时代,人们对于手机功能的应用除了打电话、发短信之外,更多的是以娱乐形式来放松自我。这便成为了我们决定设计这款手机音乐软件的主要原因。 我们开发的这款手机音乐软件以“私人订制”与“休闲娱乐”为主题设计,无论你是清纯学院风还是韩系欧美范,我们都会为您呈现一份独家定制只属于你的音乐体验,让用户在专属的界面中感受到我们这款音乐软件带来的恬静、放松。 当今社会的生活节奏越来越快,人们对手机的要求也越来越高,由于手机市场发展迅速,使得手机操作系统也出现了不同种类,现在市场上主要有三个手机操作系统——Windows Mobile,Symbian,以及谷歌的Android操作系统,其中占有开放源代码优势的Android系统有最大的发展前景。那么能否在手机上又有自己编写的个性音乐播放器呢?能的,谷歌Android系统就能做到。本文的音乐播放器就是基于谷歌Android手机平台的音乐播放器.现今社会生活紧张,而欣赏音乐是其中最好的舒缓压力的方式之一,本项目的目的是开发一个可以播放主流音乐文件格式的播放器,可以播放本地的MP3音乐,也可以播放在线的MP3音乐。本项目是一款基于Android手机平台的音乐播放器,使Android手机拥有个性的多媒体播放器,使手机显得更生动灵活化,与人们更为接近,让手机主人随时随地处于音乐视频的旋律之中。使人们的生活更加多样化。也使本人更加熟练Android的技术和它在市场上的特点。 Android是一个开源系统技术,它底层是基于Linux操作系统,本音乐播放器采用了Android开源系统技术,利用Java语言和Eclipse编辑工具对播放器进行编写。同时给出了详细的系统设计过程、部分界面截图以及主要功能运行流程图,还对开发过程中遇到的问题和解决方法进行了详细的讨论。该音乐播放器集播放、暂停、停止、上一首、下一首、音量调节、歌词显示、在线播放、音乐下载等功能于一体,性能良好,在Android系统中能独立运行。MP3的全名是MPEG Audio Layer-,是一种声音文件的压缩格式,由于本播放器只限于应用层的探讨,所以对具体的压缩算法不作深究。 二、作品可行性分析和目标群体 (1)可行性分析

音乐播放器的设计与实现毕业论文

音乐播放器的设计与实 现毕业论文 集团文件发布号:(9816-UATWW-MWUB-WUNN-INNUL-DQQTY-

毕业设计说明书 学生姓名学号 学院计算机科学与技术学院 专业计算机科学与技术(软件工程) 题目音乐播放器的设计与实现 指导教师 (姓名)(专业技术职称/ 学位) 年月 摘要:随着生活水平的提高,娱乐已成为非常主流的话题,人们不仅需要通过音乐陶冶情操,而且越来越多的人倾向于使用音乐、视频等娱乐和放松自己,这大大促进了媒体软件的发展.本文旨在介绍研究常用数字音频编码和解码的相关知识,并结合VS2008编写多功能音乐播放器,了解音乐播放器功能的实现,掌握开发音乐播放器所需的相关知识,采用了面向对象软件工程方法,其开发主要包括应用程序界面设计和后台代码运行两个方面,实现了多功能音乐播放器在计算机上的应用,可以在很大程度上满足用户的需求.该系统主要具备:音乐播放控制、音乐文件控制、音量控制、下载控制、歌词控制、进度控制、音乐剪辑等功能模块。 关键字:音乐播放器,音频编码格式,TechSmith Screen Capture Codec,FFmpeg ,C#,Visual Studio 2008 Abstract:With the improvement of standards of living, entertainment has 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

在线音乐播放系统详细设计

<在线音乐播放系统> 详细设计说明书 作者: 完成日期: 签收人: 签收日期: 修改情况记录:

1 引言 1.1 编写目的 为软件开发人员在编码的过程中有所依据和参考。 面向人员:程序开发人员 1.2 背景 说明: a.待开发的软件系统的名称:在线音乐播放系统 b.列出本项目的任务提出者:北软老师 c.开发者:邓凯 d.用户:广大互联网用户 e.将运行该项软件的单位:web服务器 1.3 定义 OMS :Online music system,在线音乐播放系统。 1.4 参考资料 列出要用到的参考资料,如: a.本项目的经核准的计划任务书或合同、上级机关的批文; b.在线音乐播放系统概要设计.doc; c.本文件中各处引用的文件、资料,包括所要用到的软件开发标准。 列出这些文件的标题、文件编号、发表日期和出版单位,说明能够得到这些文件资料的来源。 2 程序系统的结构 本程序主要采用四层结构,如下所示: 图1 系统结构示意图

3 程序(标识符)设计说明 3.1 在线音乐网络爬虫设计说明: 资源的数量和质量将决定了系统的商业价值,为了获取更多的网络媒体资源,为系统设计了一款针对互联网上音乐资源的网络爬虫。 3.1.1爬虫的原理: 网络爬虫是一个自动提取网页的程序,它为搜索引擎从Internet网上下载网页,是搜索引擎的重要组成。 传统爬虫从一个或若干初始网页的URL开始,获得初始网页上的URL,在抓取网页的过程中,不断从当前页面上抽取新的URL放入队列,直到满足系统的一定停止条件。 聚焦爬虫的工作流程较为复杂,需要根据一定的网页分析算法过滤与主题无关的链接,保留有用的链接并将其放入等待抓取的URL队列。然后,它将根据一定的搜索策略从队列中选择下一步要抓取的网页URL,并重复上述过程,直到达到系统的某一条件时停止,另外,所有被爬虫抓取的网页将会被系统存贮,进行一定的分析、过滤,并建立索引,以便之后的查询和检索;对于聚焦爬虫来说,这一过程所得到的分析结果还可能对以后的抓取过程给出反馈和指导。 相对于通用网络爬虫,聚焦爬虫还需要解决三个主要问题: (1)对抓取目标的描述或定义; (2)对网页或数据的分析与过滤; (3)对URL的搜索策略。 3.1.2在线音乐播放系统爬虫的设计: 与通用爬虫不同,在线音乐播放系统爬虫只针对https://www.sodocs.net/doc/255505639.html,音乐频道 https://www.sodocs.net/doc/255505639.html,音乐频道,针对MP3格式的资源。 3.1.3爬虫的流程图:

单片机课程设计报告简易音乐播放器

第一章前言 伴随着科技的发展和时代的进步,人们对生活质量的要求也越来越高,由以前简单的追求温饱和物质财富转向更高层面的精神追求!而这一切催生了智能仪器的发展,音乐则是人们娱乐生活的重要组成部分,目前市场上出现了许许多多的音乐播放器,而人们对播放器的功能需求也越来越广泛,本文将设计一个基于单片机的音乐播放器,通过对其全面的介绍与分析,让大家了解音乐播放器的原理! 第二章: 简易音乐播放器的功能和原理说明 音乐播放器,可以通过单片机板子上的数字按键对音乐播放的曲目进行控制,并且通过LED灯将播放的音乐加以区分,在播放音乐的同时点亮LED灯,让人知道现在正在播放的音乐曲目,从而实现简单的音乐播放功能! 表1 需求分析 功能说明:这次设计是依据单片机技术原理,通过硬件电路设计以及软件的编译而设计的一个简单的音乐播放器,可以通过按键选择播放四首歌曲(歌曲自选,只要将想要播放的歌曲的乐谱写入程序中即可)同时点亮相应的LED灯,并用它来指示当前播放的歌曲序列,只能实现简单的音乐播放功能。 原理说明:这个音乐播放器主要有晶振电路,复位电路,LED电路,按键电路以及扬声器组成。它利用单片机产生乐曲音符,再把乐曲音符翻译成计算机音乐语言,接着用单片机进行信息处理,再通过蜂鸣器或喇叭放出音乐。音乐的产生主要是通过单片机的I/O口输出高低不同的脉冲信号来控制扬声器发音。通常利用单片机的内部定时器0,工作在方式1下,再改变计数初值TH0和TL0来产生不同频率。当控制歌曲按键按下时,按照预先存放在单片机中的程序,就

会自动判断键值,然后启动计数器,按照程序产生一定频率的脉冲,接着通过uln2003芯片驱动扬声器,播放出乐曲。该硬件电路中用P3.0,P3.1,P3.2,P3.3控制四个按键,“0”,“1”,“2”,“3”分别控制四首音乐。P1.0,P1.1,P1.2,P1.3控制四个LED灯,它们分别对应四个按键,用来显示正在播放的歌曲,并用P2.3 来控制扬声器,电路为12MHz晶振频率工作,起振电路中C1 和C2为22pf。 第三章:系统硬件电路设计 1:硬件体系结构设计 该简易音乐播放器主要有单片机核心芯片89C52,LED发光二极管,扬声器,晶振电路,按键电路,复位电路组成,通过芯片引脚输出定时器产生的各种固定频率的方波信号,然后在经由扬声器产生各种频率的声音。另外,该方案使用的是单片机板子的内部振荡电路,89C52芯片的X1,X2引脚外接石英晶体。它的系统组成如图所示。 (1)晶振电路部分晶振的作用是给电路提供工作信号脉冲的,其实就是单片机的工作速度。本次设计选用12M晶振,则单片机的工作速度就是每秒12M。与此同时,也要注意单片机的工作频率范围。 (2)复位电路部分当系统出现问题时可以重置系统,解决一些问题 (3)LED显示部分显示系统在各种不同条件下的状态 (4)89C52芯片整个设计的核心,接收和处理信号及程序 (5)按键电路部分作为系统的输入

音乐播放器的设计与实现

第一章绪论 1.1背景 随着电子技术的飞速发展,嵌入式设备在各领域的应用越来越广泛,复杂度也越来越高,对其他开发方法也提出了更多的要求和更大的挑战。在嵌入式设备系统开发过程中需要将软件应用与操作系统编译连接成一个整体,然后下载到目标机上运行,所以,嵌入式设备的开发过程是一个复杂的过程。 3作为高质量音乐压缩标准,给音频产业带来了具大的冲击。3技术使音乐数据压缩比率大,回放质量高。如格式的音乐数据压缩成3格式,音效相差无己,但大小至少可压缩12倍。由于3音乐的较小数据量和近乎完美的播放效果使其在网络上传输得以实现。1995年,3格式的音乐文件刚在网络上传播时,主要用等播放软件进行播放,使3音乐无法脱离计算机进行播放,给音乐欣赏带来了不便。近几年以来,随着3播放器的出现及其技术的发展,人们对3播放器的要求越来越高,制造商在3播放器的选型、设计、开发、附加功能和适用领域等方面做了很多努力,设计了多种方案。本设计主要是利用技术设计一款新型的3播放器。 9是公司的16/32位处理器,是适用于普通设备的一种高性价比的微控制器。本设计采用的是三星公司推出的9芯片S3C2440,具有低价格、低功耗、高性能、超小体积等特点主要适用于中高端场合,目前在嵌入式系统中正得到日益广泛的应用。S3C2440主频高达400M,片上集成了丰富的资源:如()总线与控制器,为与数模转换器()的连接提供了一种理想的解决方案。 3播放器的设计比较复杂且对处理器的要求较高,因而3播放器必须仔细设计以降低成本。本设计是在9平台上设计、实现一个3播放器。 第二章系统总体方案 2.1 系统功能 本设计提出了一种基于嵌入式处理器硬件平台的3播放器设计方法。此播放器采用体系结构中的9作为系统控制器,利用外围设备通用串行接口下载3歌曲,用存贮3文件。主要对3做了各个方面的功能分析,对硬件设计、软件设计、软件实现、系统编译等方面做了介绍。系统的主要部分是音频编码与解码,这是系统设计的核心。3播放器设计的突出问题就是硬件控制和软件控制,另外还有硬盘控制、键盘控制、液晶显示,这些控制都是基于一块芯片。基于9的3播放器设计的软件体系结构采用分层模式,它包括软件层、硬件层、驱动层、操作系统层、及3播放器应用层。主要实现歌曲的播放。 2.2 设计指标 1、3工作电压为具有3.3V左右,电流250,具有音频解码和播放功能。 2、通过接口与大容量外部存储设备进行数据传输,能实现网络播放与下载、触摸屏输入功能。

音乐播放器Java课程设计报告

课程设计报告课程设计题目:java 音乐播放器 学生姓名: 专业:XXXXXXXXXXXXX 班级: 指导教师: 20XX 年X 月X 日

、课程设计目的 1、编程设计音乐播放软件,使之实现音乐播放的功能。 2、培养学生用程序解决实际问题的能力和兴趣。 3、加深java 中对多媒体编程的应用。 二、课程设计的要求 利用学到的编程知识和编程技巧,要求学生: 1、系统设计要能完成题目所要求的功能,设计的软件可以进行简单的播放及其他基本功能。 2、编程简练,可用,尽可能的使系统的功能更加完善和全面 3、说明书、流程图要清楚。 三、课程设计内容 1、课程设计的题目及简介 音乐播放软件要求: 有图形界面,能播放MP3 歌曲,有播放列表,前一首、后一首等常用播放软件功能。 2、设计说明 主要运用多媒体编程、图形界面、数组及循环进行设计,从而实现简单的音乐播放。 public MyMusicPlayer() :实现窗口的成员方法 publi c void run() :实现改变歌曲的播放状态的成员方法 :实现对声音的加载 public AudioClip loadSound(String ) :实现对按钮的监听 public void mouseClicked(MouseEvent e) public void itemStateChanged(ItemEvent arg0) :返回一个AudioClip 对象

3、程序流程图 * 出现界面 * 选择播放歌 曲 4、程序清单 import java.awt.*; import javax.swi ng.*; import java.applet.*; import java.awt.eve nt.* import java .n et.*; public class MyMusicPIayer exte nds Thread impleme nts MouseListe ner,ltemListe ner{ JFrame Mai nF rame =new JFrame( "MyMusicPlayer" ); // 定义主窗体 JLabel songname =new JLabel(); //用标签显示状态 JButton last =new JButto n(); JButt on play =new JButt on();

相关主题