音乐播放器的设计与实现_毕业论文(编辑修改稿)内容摘要:
用问题及其坏境的分析与理解采用一系列的分析方法和技术将用户的需求逐步精确化、完全化、一致化,最终形成需求规模说明文档 的过程。 本节将从不同的角度描述系统的需求。 播放器的基本控制需求 在着手开发系统之前首先要明确该系统应该实现的一些最基本的功能,然后逐步细化,为每个功能创建一个模块,再对各个模块进行开发。 通过分析我们得出一款音乐播放器的基本控制如图 31 所示: 淮阴师范学院毕业论文(设计) 11 歌 曲 下 载歌 曲 添 加播 放暂 停进 度 控 制上 一 曲下 一 曲音 量 控 制歌 词 显 示 图 31 播放器基本控制图 功能需求 功能需求规定开发人员必须在产品中实现的软件功能,用户利用这些功能来完成任务,满足业务需求。 功能需求有时也被称作行为需求 ( behavioral requirement),因为习惯上总是用“应该”对 其进行描述。 功能需求描述是开发人员需要实现什么。 功能需求定义一个软件系统或组件的功能,也是一个系统需提供的功能及服务。 功能可以用一组输入、行为及输出的组合来表示。 功能需求可以是计算、技术细节、数据处理或其他说明系统希望达成功能的内容。 功能需求会以非功能性需求(或是质量需求)为其基础。 结合音乐播放器所要实现的内容,我们列出用户操作的模块,其中每个模块对应一个功能。 用户启动程序进入主界面,用户可以通过添加模块添加本地歌曲,可以一首一首添也可以添加整个歌曲文件夹。 通过播放列表用户可以实现对歌曲的查找、播放、暂 停、音量调节、静音。 通过歌词模块可以实行歌曲歌词的显示、比对、歌词字体选择。 此外用户还可以联网下载歌词、歌曲。 其功能模块时序图如下 32 所示: 淮阴师范学院毕业论文(设计) 12 主 界 面 播 放 列 表 播 放 界 面 播 放 对 象 方 法打开文件添 加 到 播放 列 表选择歌曲播放播 放 页 面播放访 问 播 放 方 法播放方法返 回 播 放 界 面 图 32 音乐播放器功能时序图 4 系统设计 系统概要设计 在需求明确、准备开始编码之前,要做概要设计。 概要设计的主要任务是把需求分析得到的 DFD 转换为软件结构和数据结构。 设计软件结构的具体任务是:将一个复杂系统按功能进行模块划分、建立模块的层次结构及调用关系、确定模块间的接口及人机界面等。 数据结构设计包括数据特征的描述、确定数据的结构特性、以及数据 库的设计。 概要设计有多种方法。 在早期有模块化方法、功能分解方法;在 60 年代后期提出了面向数据流和面向数据结构的设计方法;近年来又提出面向对象的设计方法等。 本系统采用模块化软件设计,自顶向下逐层把软件系统划分成若干模块。 每个模块完成一个特定的功能, 最后将所有模块按照某种方法组合成一个整体,达到 整个 播放器 所要求的功能。 系统功能设计及描述 本音乐播放器不仅要实现对一些常见的音频格式文件的播放,而且还要有友好的用户界面。 其最终设计目标是:实现对多种音频格式文件的播放、实现对歌词的滚动播放及当前播放曲目长度 显示、显示歌曲文件信息、实现静音和音量控制;播放器软件占用系统资源少、运行平台要求不高、界面美观舒适、操作简单、易维护、高稳定性、能满足用户的常见需求。 主要划分为以下七个功能模块,每个功能模块的作用描述如下: 淮阴师范学院毕业论文(设计) 13 播放控制:控制歌曲的播放状态,如:播放、暂停、上一曲、下一曲。 播放过的歌曲按播放顺序排列在播放列表中,每次退出程序、重启播放器后播放列表中的播放记录会自动保存不会清空。 文件控制:主要用来打开本地播放文件。 通过研究音频编码解码的相关技术,了解音频编码解码的原理和过程,本音乐播放器支持常见音频格式文 件播放如: MP WMA、WAV等。 可以单个曲目添加,也可以将整个文件夹中的曲目全部添加,实现歌曲文件添加的多样化;此外还可以对播放列表进行清空,对曲目的播放顺序进行控制;当播放列表中曲目过多时,可以从播放列表中快速搜索到需要播放的歌曲。 还有对播放列表进行控制如:打开文件所在目录、移除列表、删除文件、显示歌曲文件的相关信息,如:歌手、专辑等。 歌词控制:播放音乐时控制是否显示歌曲歌词,若歌词存在则同步滚动显示歌词,若歌词不存在则可联网下载歌词。 此外还可以对歌词字体进行设置。 进度控制:显示当前歌曲的播放总时 长和已播放时长,可以通过鼠标调整歌曲的播放进度,实现歌曲的跳跃式播放。 其实现方式是通过进度条和时间的同步显示。 声音控制:调整歌曲音量的大小,显示是否静音。 下载控制:可以联网下载自己喜欢的歌曲、歌词。 若不知道歌曲名称则可以按歌手名查找歌曲下载,若知道歌曲名则可直接输入名称进行下载,可以在下载进度列表中查看下载状态。 音乐剪切:对音乐文件进行剪切。 添加当前路径,对想要的歌曲进行播放,在歌曲播放过程中你可以在任何地方设置一个起点,然后,再设置一个终点。 “试听歌曲”就是把你选出来的这一段播放一遍,看是不是你要的 那一段,有时候可以早开始了几秒或者早结束了几秒,这个时候可以直接在起点和终点的地方进行调整。 然后在这个窗口的上面有个“保存歌曲”,就可以把你选出来的这段音乐保存起来了。 我们可以通过歌曲剪切功能截取自己喜欢的音乐片段,来做为自己的手机铃声。 其具体功能模块如图 41 所示: 淮阴师范学院毕业论文(设计) 14 播 放 器播放控制文件控制歌词控制进度控制声音控制下载控制播放/暂停停止上一曲/下一曲打开文件播放列表歌词显示歌词搜索歌词字体设置歌词比对显示播放进度调整播放进度音量大小控制静音歌曲下载歌词下载输入歌曲名下载按歌手名下载音乐剪切 图 41 音乐播放器功能模块图 5 系统功能实现 根据上一章对系统各个模块的分析,本节主要讲述如何具体实现这些模块功能。 几乎所有的 Windows 程序都离不开窗体, Windows 窗体应用程序是 Windows 下进行软件开发的基础。 在 C中,通过 Visual Studio 2020 开发平台模版,可以自动生成多种基于Windows 的应用程序框架,主要包括基于 .NET Framework 的 Windows 窗体应用程序、淮阴师范学院毕业论文(设计) 15 Windows 服务应用程序。 最常用的是 Windows 窗体应用程序。 在 Windows 窗体应用程序中,有窗体 (Form)和控件 (Control)两个基本概念。 窗体是控件的容器,控件是应用程序显示数据或接受数据输入的相对独立的用户界面元素。 .NET 类库提供了丰富的窗体相关类,包括窗体、按钮、状态栏、工具栏、菜单、文本框、列表等多种不同的 界面元素;此外还提供各种控件、组件、容器。 通过这些界面元素的不同组合,可以设计出友好的用户界面。 对于软件开发中要用到的图片可以自己绘制,相关控件可以调用类库,从而设计出外形美观的界面。 但这也做相当费时,由于毕业设计的时间有限,图片都从网上下载,并做稍微处理,所以美观方面有一定欠缺,待以后有时间慢慢改进。 此外界面是由窗体、控件拖放组成,大部分代码由视图设计器自动生成,无需太多改动,因此这一部分不再详细阐述,下面将主要介绍主要功能模块的核心代码实现。 歌曲添加模块 很多的应用程序都有打开文件功能,本程序 使用 OpenFileDialog 组件,用来打开本地磁盘上的一个或多个文件,并添加到文件播放列表中。 添加 歌曲 文件 为了赶上社会的潮流,我们经常会从网上下载最热门的音乐,本模块功能就是实现添加本地歌曲或已下载到电脑的最新歌曲到播放列表,同时更新播放列表,使我们能及时欣赏到自己喜欢的音乐。 其具体代码如下: private void AddSong_Click(object sender, EventArgs e) { = 音乐文件 (*.wmv, *.mp3,*.wav)| *.wmv。 *.mp3。 *.wav||All files (*.*)|*.*。 =。 =。 = false。 = 添加音乐文件。 if (() == ) { string strLongPath =。 WriteFileByLongPath(strLongPath)。 } 淮阴师范学院毕业论文(设计) 16 } private void WriteFileByLongPath(string strLongPath) { int b = (\\)。 string strShortPathWithExtension = (b + 1)。 StreamWriter sw = new StreamWriter(, true)。 string extension = ( 3)。 if (() == wmv || () == mp3 || () == wav) { string strShortPathWithoutExtension = (b + 1, 4)。 Mp3 mp3 = new Mp3(strLongPath)。 if (!(() || ())) {//获取成功的结果 (歌手名 歌曲名 ) strShortPathWithoutExtension = () + + ()。 } //否则原文件名 if (!(strShortPathWithoutExtension)) {//不包含 (strShortPathWithoutExtension)。 Image image = getImageByArtistOrSongName(, strShortPathWithoutExtension)。 (image)。 (strShortPathWithoutExtension)。 = songList。 = imageList。 淮阴师范学院毕业论文(设计) 17 (strShortPathWithoutExtension)。 (strLongPath)。 //写入全路径 } } ()。 ()。 } . 2 添加 歌曲 文件夹 当我们要欣赏歌曲专辑时,可能要添加的文件比较多,显然单曲添加比较麻烦,这时我们就可以使用 OpenFileDialog 组件的 Multiselect 属性和 Filenames 属性实现整个文件夹的添加,同时更新播放列表。 代码如下: private void tsmiAddSongFolder_Click(object sender, EventArgs e) { if (() == ) { string str =。 DirectoryInfo r = new DirectoryInfo(str)。 GetAllFiles(r)。 } } public void GetAllFiles(DirectoryInfo dir) { FileSystemInfo[] fileinto = ()。 foreach (FileSystemInfo i in fileint。音乐播放器的设计与实现_毕业论文(编辑修改稿)
相关推荐
DV 1 保持原电平 原状态 电平 * * 0 低电平 接通 热敏电阻 热敏电阻:热敏电阻的基本电气特性是它们随其温度变化而改变自身电阻。 它们不整定 , 也不产生信号 , 热敏电阻温度会随周围温度或电流通过热敏电阻而导致的自热而改变。 阻值随温度升高而变大的为正温度系数热敏电阻,简称 PTC;阻值随温度升高而变小的称为负温度系数热敏电阻,简称 NTC。 热敏电阻主要参数的定义为: 标称阻值
试块的尺寸、数量、制作方法、养护、强度计算必须严格执行工程质量施工与验收规范的规定。 制作试块所用材料,必须与施工所用材料一致,不得加料、补做,并在监理(建设)单位见证人的监督下制作实施。 如果试块强度没有达到设计强度,应立即报告公司技术部门、监理(建设)单位和设计单位 ,共同分析原因,商讨补强措施,并做好记录。 在工程施工期间,砼、砂浆试块报告单由工地资料员保管,竣工后和其他技术资料汇总成册。
11 故负载上得到的最大输出功率为: () 2).直流电源提供的功率 PE 因为静态 时 负载上无电压,所以 两个直流电源各提供半个周期的电流,其峰值为 Iom=Uom/RL。 故每个 直流电源转换过来的 平均电流为: () 因此两个电源提供的功率为: () 输出最大功率时,电源提供的功率也最大: () 3) 效率 η 输出功率与电源提供的功率之比称为功率放大器的效率。 一般情况下效率为 ()
,从而使φ 2020 钢管外形成一个泥浆套,顶进时摩阻力减小的效果。 每只泥浆孔均有凡尔控制,可以按需要调节,注浆压力一般控制在土 柱重的 2 倍即 2γ h。 压浆孔的做法:在钢管上开通孔焊接内丝,规格 1 寸管牙。 内装塑料单向阀,厚 10mm,管外侧焊上扩散罩,再安装外丝口缩节联结 1寸凡尔, 4 只注浆孔为一组 ,由一根 1'' 皮龙连接,接通注浆总管,注浆总管由 2 寸橡皮笼,
本的 JDK。 因此掌握 JDK 是学好 Java 的第一步。 最主流的 JDK 是 Sun 公司发布四川科技职业学院 毕业设计 (论文 ) 第 6 页 的 JDK,除了 Sun 之外,还有很多公司和组织都开发了自己的 JDK,例如 IBM 公司开发的 JDK, BEA 公司的 Jrocket,还有 GNU 组织开发的 JDK 等等。 其中 IBM 的 JDK包含的 JVM( Java
后的数字信号由计算机对其进行运算、处理,最后经过 D/A 转换,以获得所需的各种混响声和自然效果声。 采用数字式混响器对信号的电平、位置、延迟时间以及混响信息均可自由控制、无频率畸变和染色失真现象,所以能够获得更为自然的混响效果,以及自然界根本无法得到的特殊音响效果,故又称之为效果器。 混响器的发展现状 长久以来,混响器作为音频制作、声学应用等各种应用层面的有力因素,为其提供了源源不竭的活力。