当前位置:文档之家› 基于Android音乐播放器的设计与实现

基于Android音乐播放器的设计与实现

基于Android音乐播放器的设计与实现
基于Android音乐播放器的设计与实现

滨江学院

《移动通信程序设计》

课程设计

题目基于Android系统的音乐播放器

院系滨江学院

专业计算机科学与技术

学生姓名王兵

学号

二O一四年六月十日

摘要

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

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

目录

1前言...........................................................

1.1选题的背景及意义.............................................

1.2网络流行音乐播放器简介....................................... 2系统相关技术及开发平台介绍 .....................................

2.1开发应用技术介绍.............................................

2.2开发及运行坏境............................................... 3系统的分析.....................................................

3.1可行性分析...................................................

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

3.3需求分析..................................................... 4系统设计.......................................................

4.1系统概要设计.................................................

4.2系统功能设计及描述........................................... 5系统功能实现...................................................

5.1歌曲添加模块.................................................

5.2歌曲列表模块.................................................

5.3播放控制模块.................................................

5.4音量控制模块.................................................

5.5进度控制模块.................................................

5.6滚动字幕模块.................................................

5.7歌曲下载模块.................................................

5.8歌曲剪辑模块................................................. 结论............................................................ 参考文献.......................................................

致谢............................................................

1 前言

1.1 选题的背景及意义

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

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

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

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

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

是一件很有成就感的事情。

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

本小节举例介绍目前网络上流行的几款音乐播放器,比如国产千千静听,酷狗音乐等。比较分析了

它们各自特有的功能,此外还集中介绍了常见的几种编码格式以及它们各自的特点。

1.2.1 千千静听

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

软件特色:1、高精度音质,完美还原听觉;2、在线自动下载歌词,卡拉OK式同步显示;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.doczj.com/doc/3917505182.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();

}

//否则原文件名

if (!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);

}

else

{

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.AnchorStyles.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.doczj.com/doc/3917505182.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()

{

InitializeComponent();

}

private Font font = new Font("华文行楷", 25.0f, FontStyle.Bold);

public int curPlayTimeSecond = 0; //lblTime传递过来播放的秒数(用于歌词提前和延后),因为有时候获取时间不准确

public bool isPlay = false;

private void ShowLrc_Load(object sender, EventArgs e)

{

initialBtn();

}

public void initial()

{

graphics = this.CreateGraphics();

time.Interval = 100;

time.Tick += new EventHandler(time_Tick);

initialINI();

}

void timer_Tick(object sender, EventArgs e)

{

clearPanel();

if (string.IsNullOrEmpty(strLrcContext))

{

drawString("未找到歌词");

}

else

{

drawString(regc(curPlayTimeSecond));

}

}

public void clearContext()

{

curFileName = "";

subgc = null;

mylist.Clear();

}

private void clearPanel()

{

graphics.Clear(Color.Maroon);

}

private void split()

{

subgc = strLrcContext.Split(new char[] { '[', ']', '\r', '\n' });

//subgc存储歌词文件中所有的时间信息和歌词

//使用正则表达式判断时间格式提取出时间信息,并进行排序

for (int i = 0; i < subgc.Length; i++)

if (Regex.IsMatch(subgc[i], "^([01][0-9]|2[0-3]):[0-5][0-9].[0-9][0-9]$") || Regex.IsMatch(subgc[i], "^([01][0-9]|2[0-3]):[0-5][0-9]$")) //是否匹配

{

string temp = subgc[i];

mylist.Add(subgc[i]);

}

}

for (int i = 0; i < mylist.Count - 1; i++)

{

for (int j = i; j < mylist.Count; j++)

{

if (https://www.doczj.com/doc/3917505182.html,pare(mylist[i].ToString(), mylist[j].ToString()) > 0) {

string temp;

temp = mylist[i].ToString();

mylist[i] = mylist[j];

mylist[j] = temp;

}

}

}

}

private void readLrc()

{

if (curFileName == string.Empty)

return;

lrcPath = string.Format("lrc\\{0}.lrc", curFileName);

if (!File.Exists(lrcPath))

{

strLrcContext = "";

return;

基于Android的音乐播放器设计与实现

基于Android的音乐播放器设计与实现

摘要 在如今这个生活节奏越来越快的社会,科技也随之发展的越来越智能化。而手机的智能化就是其中体现的一个方面,现在市场上比较主流的手机系统就是Android,苹果和w8。Android是一个开源的系统,它底层是基于Linux的操作系统。 本毕业设计的音乐播放器采用了Android开源系统技术,利用Java语言和EclipseJDK编辑工具对音乐播放器进行编写。同时也给出了比较详细的系统设计过程、部分界面图及主要功能运行流程图,本设计还对一些架构的和界面的高度过程中遇到的问题和解决方法进行了详细的讨论,还有一些开发过程中遇到的错误问题进行了举例。该音乐播放器集播放、暂停、停止、上一首、下一首、歌词显示等功能于一体,有良好的性能,炫酷的播放界面。能在Android 手机系统中能独立运行。该播放器还拥有对手机文件浏览器的访问功能、歌曲播放模式(单曲循环,单曲循环,顺序循环,顺序播放,随机播放)、以及歌词开闭状态等比较人性化的设置.该音乐播放器的名称是:“旋风播放器“,名字就和它的风格一样。 关键词:Linux操作系统;Android;流程图;音乐播放器;开源系统

Abstract In this increasingly fast pace of life society, science and technology also will be the development of more and more intelligent. The intelligent phone which reflects one aspect of the market is now more mainstream phone system is Android, Apple and W8. Android is an open source system, it is the underlying Linux-based operating system. The music player of the graduate design uses the Android open source technology, the use the Java language and EclipseJDK of editing tools to write the music player. But also gives a more detailed system design process, part of the interface map and main functions of a flowchart of the operation, the design of a high degree of process architecture and interface problems encountered and solutions are discussed in detail, as well as some development process errors encountered examples. The music player is set to play, pause, stop, previous one, the next song, lyrics display and other functions in one, good performance, cool player interface. Android mobile phone system can run independently. The player also has access to the phone file browser function, song playback mode (single cycle, single cycle, order cycle, the order of play, random play), as well as the opening and closing lyrics state humane set the music the name of the player: "whirlwind player", the name and its style. Key words: Linux operating system; Android; flowchart; music player; open source system

android开发计算器设计开发报告

《安卓开发》程序设计报告 题目简单计算器开发 专业(班级)网工111班 姓名张波波 学号5(qq) 指导教师赵(老师) 日期 目录 一、设计说明:2 1.设计内容:Android简单应用程序开发,简单计算器。2 2程序说明:2 二、开发环境:3 三、概要设计:3 系统的总体3 四、程序流程和系统功能设计3 程序流程设计3 .系统功能设计4 基于Android平台系统具体设计4 总体模块详细设计5 输入模块详细设计 5

显示模块详细设计6 计算模块详细设计 6 五、计算器系统实现7 Android应用程序构成7 六、截图说明 8 1、图标8 2界面8 3运算界面9 4错误输入9 5设计平台界面10 6签名导出apk 10 七、总结 11 课程设计任务书 一、设计说明: 1.设计内容:Android简单应用程序开发,简单计算器。 2程序说明: 1、计算器界面友好,方便使用。 2、具有基本的加、减、乘、除功能,还有+—、开方、平方功能。能够判断用户输入运算数是否正确。4、 支持小数运算。 具有退格功能,能够删除最后一个输入,ce。 具有清除功能,删除所有,c。 具有结果存储功能,能够显示存储器状态,支持触屏手机。 支持最低版本,最高版本。开发时为

二、开发环境: 开发环境:本系统是采用Eclipse+EclipseMe+JDK+ADT作为开发平台。事实上为了节约时间就直接用Google公司安给的直接绑定好的adt-bundle-windows-x86_64开发,只需要配置下环境变量,无需要关联等操作。 三、概要设计: 系统的总体 整个程序基于android技术开发,出总体模块外主要分为输入模块、显示模块以及计算模块(包括一些其她功能)这三大部分。在整个系统中总体模块控制系统的生命周期,输入模块部分负责读取用户输入的数据,显示模块部分负责显示用户之前输入的数据以及显示最终的计算结果,计算模块部分负责进行数据的运算以及一些其她的功能。 总体模块的作用主要是生成应用程序的主类,控制应用程序的生命周期。输入模块主要描述了计算器键盘以及键盘的监听即主要负责读取用户的键盘输入以及响应触屏的按键,需要监听手机按键动作以及用指针事件处理方法处理触屏的单击动作(以松开按键为准)。同时提供了较为直观的键盘图形用户界面。 显示模块描述了计算器的显示区,即该区域用于显示用户输入的数据以及最终的计算结果,同时还负责显示一些其她的信息。 计算模块则主要描述了计算器的整体,实现了计算器的界面,负责计算用户输入数据,包括加、减、乘、除、等各种计算功能,记忆数据的相关功能,退格以及清零的功能。 四、程序流程和系统功能设计 程序流程设计 知道了系统的功能以后,我们通过来建立显示界面,完成后系统开始监听用户的按键输入,每次输入系统都会判断一次用户输入的类型,是数字还是运算符号或者是清除,判断完后分成不同类型如数字,符号,基本运算等等进行进一步的处理,根据用户的要求继续进行下一步的操作,最后计算出最终结果并显示在显示区。 系统流程图如图4-1所示:

android开发计算器课程设计

Android应用程序开发 实验报告 学号:131006105 学生姓名: 冯会会 指导教师:齐兵辉 提交时间:2015.11.10

目录 第一章系统分析与设计 (3) 1.1系统的可行性分析 (3) 1.2系统的需求分析 (3) 第二章系统详细设计 (3) 2.1 ACTIVITY的详细设计 (3) 2.2 XML文件的详细设计 (14) 第三章测试运行及总结 (20) 3.1界面截图 (20) 3.2运行界面截图 (21) 3.3运行结果截图 (22) 3.4总结 (22)

第一章系统分析与设计 1.1系统的可行性分析 可行性研究是为了弄清楚系统开发的项目是不是可以实现和值得进行研究的过程,实际上是一次大大简化系统分析和系统设计的过程,所以,进行可执行性的分析是非常必要的,也是很重要的,经过最初的设计目标和进行的实时调查得出以下四点的可行性分析: (1)技术可行性:Eclipse + Android ADT的技术已经较为成熟,通过SUN 公司(现被ORCEL公司收购)推出的跨平台、动态的JAVA语言进行开发。 (2)运行可行性:该系统需要Android虚拟机环境,Eclipse中安装ADT,DDMS等Google Android相关插件。其运行环境已经相当稳定,它功能丰富,包括了完备的Android程序的编码、调试、测试和发布功能,其中支持所有Android应用开发相关技术,包括SQLite,Skia,3D制作,Android XML,能够很好的发布Android的应用程序APK包。 (3)法律可行性:因为是自主开发设计,所以不会构成侵权,在法律上是可行的。 通过以上的可行性分析,将采用Eclipse+Android ADT + DDMS技术,运用JAVA语言进行系统的开发。 1.2 系统的需求分析 根据分析需求,这个系统必须实现以下的功能:

安卓音乐播放器开发,含源代码

基于an droid平台的音乐播放器开发 实验报告 学生姓名:_______ 温从林 _________________ 学号: ___________________________________ 班级:计自1201 _____________ 第一章引言 1.1项目背景 当今社会的生活节奏越来越快,人们对手机的要求也越来越高,由于手机市场发展迅速,使得手机操作系统也出现了不同各类,现在的市场上主要有三个手机操作系统,Win dowsmobile,symbia n,以及谷歌的An droid操作系统,其中占有开放源代码优势的An droid系统有最大的发展前景。那么能否在手机上拥有自己编写的个性音乐播放器呢?能的,谷歌An droid系统就能做到。本文的音乐播放器就是基于谷歌An droid手机平台的播放器。 An droid :是谷歌于2007年公布的开放式源代码手机系统,它的开放性就优于其它封闭式的手机系统,因此,任何人都可能根据自己的喜好将手机系统中的所有功能重新编写。这使得越来越多的人关注这个操作系统。本次作品音乐播放器就是基于An droid平台的。 1.2编写目的 现今社会生活紧张,而欣赏音乐是其中最好的舒缓压力的方式之一,本项目的目的是开发一个可以播放主流音乐文件格式的播放器,本设计实现的主要功能是播放Mp3 Wav多种格式的音乐文件,并且能够控制播放,暂停,停止,播放列等基本播放控制功能,界面简明,操作简单。

本项目是一款基于An droid手机平台的音乐播放器,使An droid手机拥有个性的 多媒体播放器,使手机显得更生动灵活化,与人们更为接近,让手机主人随时随地处于音乐视频的旋律之中。使人们的生活更加多样化。也使设计者更加熟练An droid的技术和其它在市场上的特点。 1.3开发环境 Eclipse、An droid SDK 320 第二章系统需求分析 2.1功能需求(用例图分析) 根据项目的目标,我们可获得项目系统的基本需求,以下从不同角度来描述系统的需求,并且使用用例图来描述,系统的功能需求,我们分成四部分来概括,即播放器的基本控制需要,播放列表管理需求,播放器友好性需求和播放器扩展卡需求。以下分别描述: 2.1.1播放器的用例图 假设安装了音乐播放器的用户是系统的主要设计对象,其拥有以下操作, 启动软件、播放音乐、暂停播放、停止播放、退出软件,其用例图如下 图2.1 播放器基本用例图 2.1.2用例分析

安卓计算器开发实验报告

上海电力学院 嵌入式WebOS应用开发 实验报告 实验名称:使用Android Developer SDK开发应用程序 专业: 姓名: 班级: 学号:

一、作品的运行环境及安卓SDK基础操作 SDK Android Developer是一款在windows系统上运行的针对Android应用开发的谷歌官方软件(需要JAVA环境支持)。 1、导入工程 2、建立虚拟机 在运行虚拟机是为保证机器的顺畅运行建议选择分辨率较低的虚拟机,但是其RAM最好设为512MB,因为部分程序如果调用资源过大会导致虚拟机无法运行。

3、虚拟机界面 二、作品介绍 我的应用是一个计算器。能实现包括小数的加减乘除运算,结果过大会自动用科学记数法表示,另外还有退格跟清屏功能键。

三、编程以及运行调试 (一)、在MyDesktop主界面中添加应用图标 1. 首先在我的桌面上添加你应用的图标以及文字,双击 图标后就可以看见对应的代码,可直接在代码中进行修改图片文字的大小颜色等等。 以下是对应图像图标的代码

图片可以在左侧的选 项中自行进行挑选; 也可以添加自己的图片, 只要将图片放到对应的 文件夹之下在刷新就可 以,但不建议放分辨率 过高图片可能会出现超 出界面的等错误。 (二)、在res/layout目录下新建.xml文件,由于计算器的按钮很多,要在xml界面中添加排版: xml代码首末的格式较为自由可以直接在界面中拖动图标位置以及修改大小,而其他layout则更会自动排列,各有优劣。 (三)、在src/weibo.test.ui目录下新建.java文件,计算器的按钮

android开发计算器设计开发报告

Xx大学计算机与电子 信息学院《移动编程 技术》安卓程序开发 设计报告---简单计算 器 《安卓开发》程序设计报告 题目简单计算器开发 专业(班级) 网工111班 姓名张波波 学号952937885(qq) 指导教师赵(老师) 日期2014.5.7

目录 一、设计说明: (3) 1.设计内容:Android简单应用程序开发,简单计算器。 (3) 2程序说明: (3) 二、开发环境: (3) 三、概要设计: (3) 3.1 系统的总体 (3) 四、程序流程和系统功能设计 (4) 4.1程序流程设计 (4) 4.2.系统功能设计 (5) 4.3基于Android平台系统具体设计 (6) 4.3.1 总体模块详细设计 (6) 4.3.2 输入模块详细设计 (6) 4.3.3 显示模块详细设计 (7) 4.3.4 计算模块详细设计 (7) 五、计算器系统实现 (8) 5.1 Android应用程序构成 (8) 六、截图说明 (9) 1、图标 (9) 2界面 (10) 3运算界面 (11) 4错误输入 (11) 5设计平台界面 (12) 6签名导出apk (12) 七、总结 (13)

课程设计任务书 一、设计说明: 1.设计内容:Android简单应用程序开发,简单计算器。 2程序说明: 1、计算器界面友好,方便使用。 2、具有基本的加、减、乘、除功能,还有+—、开方、平方功能。 3、能够判断用户输入运算数是否正确。 4、 4、支持小数运算。 5、具有退格功能,能够删除最后一个输入,ce。 6、具有清除功能,删除所有,c。 7、具有结果存储功能,能够显示存储器状态,支持触屏手机。 8、支持最低版本2.0,最高版本4.4。开发时为4.2 二、开发环境: 开发环境:本系统是采用Eclipse+EclipseMe+JDK+ADT作为开发平台。事实上为了节约时间就直接用Google公司安给的直接绑定好的adt-bundle-windows-x86_64开发,只需要配置下环境变量,无需要关联等操作。 三、概要设计: 3.1 系统的总体 整个程序基于android技术开发,出总体模块外主要分为输入模块、显示模块以及计算模块(包括一些其她功能)这三大部分。在整个系统中总体模块控制系统的生命周期,输入模块部分负责读取用户输入的数据,显示模块部分负责显示用户之前输入的数据以及显示最

android开发——简易计算器的设计报告

简易计算机的设计 摘要:Android是当今最重要的手机开发平台之一,它是建立在Java基础之上的,能够迅速建立手机软件的解决方案。Android的功能十分强大,成为当今软件行业的一股新兴力量。Android基于Linux平台,由操作系统、中间件、用户界面和应用软件组成,具有以下5个特点:开放性、应用程序无界限、应用程序是在平等条件下创建的、应用程序可以轻松的嵌入网络、应用程序可以并行运行。 一、实训目的 1、了解Android系统,学会Android开发环境的搭建。 2、了解E clipse,学会用E clipse和Java 开发一个Android程序。 3、进一步巩固课堂上所学到的知识,深刻把握Java语言的重要概念及其面向对象的特性,能够熟练的应用面向对象的思想和设计方法解决实际问题的能力。 4、巩固所学Java语言基本知识,增进Java语言编辑基本功,掌握JDK、Editplus、Eclipse、JCreator等开发工具的运用,拓宽常用类库的应用。 二、实训任务 1、Activity的相关知识 简单理解Activity 代表一个用户所能看到的屏幕,Activity 主要是处理一个应用的整体性工作。Activity是最基本的Android 应用程序组件,应用程序中,一个活动通常就是一个单独的屏幕。每一个活动都被实现为一个独立的类,并且从活动基类中继承而来,活动类将会显示由视图控件组成的用户接口,并对事件做出响应。大多数的应用是由多个屏幕显示组成,因而要用到多个Activity。 (1)Activity的相关方法及相关函数:void onCreate(Bundle)首次启动时调用,接受参数:Null or savedInstanceState(保存的以前某些状态信息);void onStart() 说明了将要显示给用户的活动;void onRestart()将处于停止状态的活动重新显示给用户;void onResume()用户可以开始与活动进行交互时

android简单计算器课程设计

摘要 Android是当今最重要的手机开发平台之一,它是建立在Java基础之上的,能够迅速建立手机软件的解决方案。Android的功能十分强大,成为当今软件行业的一股新兴力量。Android基于Linux平台,由操作系统、中间件、用户界面和应用软件组成,具有以下5个特点:开放性、应用程序无界限、应用程序是在平等条件下创建的,应用程序可以轻松的嵌入网络、应用程序可以并行运行。而简单计算器又是手机上必备的小程序,所以此次创新实践很有意义。并且具有很强的使用性。 关键字:Android Java基础计算器

目录 第1章开发工具与环境 (1) 1.1 Android平台 (1) 1.2 Java开发环境 (1) 1.3 Eclipse (1) 1.4 Android程序基础—Android应用程序的构成 (2) 第2章系统分析与设计 (4) 2.1系统的可行性分析 (4) 2.2 系统的需求分析 (4) 2.3 系统的优势 (4) 2.4 系统的流程图 (5) 第3章系统详细设计 (6) 3.1 动作Activity (6) 3.2 布局文件XML (6) 3.3 Activity的详细设计 (7) 3.2 布局文件XML的详细设计 (21) 3.2 系统的运行结果 (24) 结论 (25) 参考文献 (26)

第1章开发工具与环境 1.1 Android平台 1.谷歌与开放手机联盟合作开发了Android, 这个联盟由包括中国移动、摩托罗拉、高通、宏达和T-Mobile在内的30多家技术和无线应用的领军企业组成。 2.Android是一个真正意义上的开放性移动设备综合平台。通过与运营商、设备制造商、开发商和其他有关各方结成深层次的合作伙伴关系,来建立标准化、开放式的移动电话软件平台,在移动产业内形成一个开放式的生态系统,这样应用之间的通用性和互联性将在最大程度上得到保持。 3.所有的Android应用之间是完全平等的。 4.所有的应用都运行在一个核心的引擎上面,这个核心引擎其实就是一个虚拟机,它提供了一系列用于应用和硬件资源间进行通讯的API。撇开这个核心引擎,Android的所有其他的东西都是“应用”。 5.Android打破了应用之间的界限,比如开发人员可以把Web上的数据与本地的联系人,日历,位置信息结合起来,为用户创造全新的用户体验。 1.2 Java开发环境 Java技术包含了一个编程语言及一个平台。Java编程语言具有很多特性,如面向对象、跨平台、分布式、多线程、解释性等等。Java编程语言起源于Sun公司的一个叫“Green”的项目,目的是开发嵌入式家用电器的分布式系统,使电气更加智能化。1996年1月发布了JDK1.1版本,一门新语言自此走向世界。之后,1998年12月发布了1.2版本,2002年2月发布1.4版本,2004年10月发布1.5版本(5.0),2006年12月发布1.6(6.0)版本,这是目前的最新版本。Java1.2版本是一个重要的版本,基于该版本,Sun将Java技术分为J2SE、J2ME、J2EE,其中J2SE为创建和运行Java程序提供了最基本的环境,J2ME与J2EE 建立在J2SE的基础上,J2ME为嵌入式应用(如运行在手机里的Java程序)提供开发与运行环境,J2EE为分布式的企业应用提供开发与运行环境。 1.3 Eclipse

基于android平台的音乐播放器的设计与实现

嵌入式系统综合设计说明书 题 目:基于Android 的音乐播放器设计与实现 姓 名: 学 院:信息工程学院 班 级: 指导教师: 2012 年9 月24 日

摘要 Android是一种以Linux为基础的开放源代码操作系统,本文就android平台下设计和实现音乐播放器,利用java语言和Eclipse编程工具实现。通过设计能够实现音乐的播放、暂停、上一曲、下一曲、音乐列表、声音控制、帮助菜单等功能,通过对基于android平台下的播放器的设计,了解音乐播放器的设计的原理和实现的相关技术,掌握了android编程思想以及基本的应用组件,对以后从事android开发有很大的帮助。 关键词:android;音乐播放器;嵌入式;java

Abstract Android is a Linux-based open-source operating system, this article on the android platform design and realization of the music player, the use of the Java language and the Eclipse programming tools. Can be achieved through the design of the music playback, pause, previous song, next song, music list, sound control, the Help menu and other functions through the principle player in android platform-based design, and to understand the design of the music player realization of the related technology, to master the android programming ideas, as well as basic application components, great help later in the android development. Keywords: android; music player; embedded; java

安卓计算器开发实验报告

嵌入式WebOS应用开发 实验报告 实验名称:使用An droid Developer SDK开发应用程序 专业:_________________________ 姓名:__________________________________ 班级:_______________________________ 学号:______________________________ 一、作品的运行环境及安卓SDK基础操作 SDK An droid Developer 是一款在windows系统上运行的针对 An droid应用开发的谷歌官方软件(需要JAVA环境支持)。 1、导入工程 2、建立虚拟机 在运行虚拟机是为保证机器的顺畅运行建议选择分辨率较低的虚拟机,但是其RAM最好设为512MB因为部分程序如果调用资源过大会导致虚拟机无法运行。 3、虚拟机界面 二、作品介绍 我的应用是一个计算器。能实现包括小数的加减乘除运算,结果过大会自动用科学记数法表示,另外还有退格跟清屏功能键。

加应用图标 1.首先在我的桌面上添加你应 用的图标以及文字,双击图标后 项中自行进行挑选; 也可以添加自己的图片, 只要将图片放到对应的 文件夹之下在刷新就可 以,但不建议放分辨率 过高图片可能会出现超 出界面的等错误。 要在xml 界面中添加排版: xml 代码首末的 格式较为自由可以直接在 界面中拖动图标位置以及修改大小,而其他layout 则更会自动排列, 各有优劣。 三、 编程以及运行调试 (一)、在MyDesktop 主界面中添 fin^_ok,prig 世IF it launchiWipng 32E img'O.png jdE im^il.png] 3E img?.pHg 血 imql.pngi 32E img4.png 血 im^S.pngi Tn? imgg.png JJL -mgT.pngj ..1. imy^.png ..1. uiHiprxg 就可以看见对应的代码, 可直接 在代码中进行修改图片文字的 大小颜色等等。 以下是对应图像图标的代码 图片可以在左侧的选 (二)、在 res/layout 目录下新建.xml 文件,由于计算器的按钮很多, TIF charfrc 起 ch^tfrorn_bg_ipTW5&d !S'.pflg ~l <+i?,kbnif^M 口 .股 ch?kbojco#f bsckgrourid^na SE chfkb rn (」]n.hewlcgin 口unci 岱n 评 弧 tlwr^na TTF de^ r o 1 .pnq

基于Android音乐播放器的设计与实现

滨江学院 《移动通信程序设计》 课程设计 题目基于Android系统的音乐播放器 院系滨江学院 专业计算机科学与技术 学生姓名王兵 学号 二O一四年六月十日

摘要 随着生活水平的提高,娱乐已成为非常主流的话题,人们不仅需要通过音乐陶冶情操,而且越来越多的人倾向于使用音乐、视频等娱乐和放松自己,这大大促进了媒体软件的发展.本文旨在介绍研究常用数字音频编码和解码的相关知识,并结合VS2008编写多功能音乐播放器,了解音乐播放器功能的实现,掌握开发音乐播放器所需的相关知识,采用了面向对象软件工程方法,其开发主要包括应用程序界面设计和后台代码运行两个方面,实现了多功能音乐播放器在计算机上的应用,可以在很大程度上满足用户的需求.该系统主要具备:音乐播放控制、音乐文件控制、音量控制、下载控制、歌词控制、进度控制、音乐剪辑等功能模块。 关键字:音乐播放器,音频编码格式,TechSmith Screen Capture Codec,FFmpeg ,C#,Visual Studio 2008 目录 1前言........................................................... 1.1选题的背景及意义............................................. 1.2网络流行音乐播放器简介....................................... 2系统相关技术及开发平台介绍 ..................................... 2.1开发应用技术介绍............................................. 2.2开发及运行坏境............................................... 3系统的分析..................................................... 3.1可行性分析................................................... 3.2常见的几种音频格式及其特点................................... 3.3需求分析..................................................... 4系统设计....................................................... 4.1系统概要设计................................................. 4.2系统功能设计及描述........................................... 5系统功能实现................................................... 5.1歌曲添加模块................................................. 5.2歌曲列表模块................................................. 5.3播放控制模块................................................. 5.4音量控制模块................................................. 5.5进度控制模块................................................. 5.6滚动字幕模块................................................. 5.7歌曲下载模块................................................. 5.8歌曲剪辑模块................................................. 结论............................................................ 参考文献.......................................................

Android计算器设计报告

《Android课程实践》报告 课设题目Android计算器程序设计 学院 班级 学生姓名 学号 序号 指导教师 时间2019.11.21

一、设计分析 1.1 实现功能 本次实验进行设计可保存计算过程的计算器,实现功能如下: 1.仿照真实的计算器实现其功能。 2.在左上方的文本框中显示当前的计算过程,在右边的文本区中显示以往的计算过程。 3.单击“保存”按钮可以将文本区中的全部计算过程保存到文件;单击“复制”按钮可以将文本区中选中的文本复制到剪贴本;单击“清除”按钮可以清除文本区的全部内容。 1.2 设计思路 考虑到计算器的美观和易用性,可以把计算器做在 Android 端,Android 系统的 App 的底层功能由 Java 实现,所有工作主要分为两部分: 1.设计计算器界面 (activity_main.xml) 计算器界面用xml文件编写,包括手机竖屏和横屏两个布局文件: 竖屏:activity_main.xml 布局为 portrait 横屏:activity_main_land.xml 布局为 landscape 竖屏模式可以完成基本的四则运算,不涉及科学计算 横屏模式除了完成基本的四则运算,还添加了科学运算 2.编写计算接口 (ScienceCalculator.java) ScienceCalculator 可以完成包含科学运算函数的 math,先实现可以完成基本四则运算的 BaseCalculator,在此基础上,实现 ScienceCalculator。 运算的思路是先通过 ScienceCalculator 完成math中需要科学计算函 数的部分,再用这些部分计算的结果替换原 math 中的这些部分,使包含科学计算函数的 math 转变成可用 BaseCalculator 计算的 math。

基于Android音乐播放器的设计与实现

基于Android音乐播放器的设计与实 现

专科毕业设计(论文) 题目基于Android的音乐播放器设计与实现 姓名苏闹 专业计算机应用技术 学号 23011 指导教师黄海燕 郑州科技学院信息工程学院 二○一五年五月 2 2020年4月19日

目录 摘要 (Ⅰ) Abstract (Ⅱ) 前言 (Ⅲ) 1. 项目来源及开发目的和意义 (1) 1.1 项目来源 (1) 1.2 项目开发目的和意义 (2) 2. 音乐播放器开发及应用现状分析 (3) 2.1操作和全面是关键 (3) 2.2 Android音乐播放器的音质分析 (4) 3. 需求分析及总体设计方案 (5) 3.1 主要开发内容 (5) 3.2 需求分析 (5) 3.2.1 界面设计模块功能需求 (6) 3.2.2 后台通讯模块功能需求 (13) 3.2.3 文件夹选择模块功能需求 (13) 3.3 总体设计方案 (13) 3.3.1 页面设计模块结构 (13) 3.3.2 后台通讯模块结构 (13) 3.3.3 文件夹选择模块结构 (14)

4. 开发环境和开发工具 (14) 4.1 开发语言 (14) 4.2 开发工具 (14) 4.3 开发环境 (14) 5. 项目进度安排、预期达到的目标 (15) 5.1 进度安排 (15) 5.2 预期达到的目标 (15) 5.2.1 功能预期目标 (15) 5.2.1 性能预期目标 (15) 5.2.1 其它预期目标 (15) 6. 完成项目所需的条件和经费 (16) 7. 预见的困难及应对措施 (17) 总结 (19) 致谢 (20) 参考文献 (21)

基于安卓的计算器的设计与实现

安卓应用程序设计 ——简易计算器的实现院(系)名称 专业名称 学生姓名 学生学号 课程名称 2016年6月日

1.系统需求分析 Android是以Linux为核心的手机操作平台,作为一款开放式的操作系统,随着Android 的快速发展,如今已允许开发者使用多种编程语言来开发Android应用程序,而不再是以前只能使用Java开发Android应用程序的单一局面,因而受到众多开发者的欢迎,成为真正意义上的开放式操作系统。计算器通过算法实行简单的数学计算从而提高了数学计算的效率,实现计算器的界面优化,使界面更加友好,操作更加方便。基于android的计算器的设计,系统具有良好的界面;必要的交互信息;简约美观的效果。使用人员能快捷简单地进行操作,即可单机按钮进行操作,即时准确地获得需要的计算的结果,充分降低了数字计算的难度和节约了时间。 2.系统概要设计 2.1计算器功能概要设计 根据需求,符合用户的实际要求,系统应实现以下功能:计算器界面友好,方便使用,,具有基本的加、减、乘、除功能,能够判断用户输入运算数是否正确,支持小数运算,具有清除功能。 图2.1系统功能图 整个程序基于Android技术开发,除总体模块外主要分为输入模块、显示模块以及计算模块这三大部分。在整个系统中总体模块控制系统的生命周期,输入模块部分负责读取用户输入的数据,显示模块部分负责显示用户之前输入的数据以及显示最终的计算结果,计算模块部分负责进行数据的运算以及一些其他的功能。具体的说,总体模块的作用主要是生成应用程序的主类,控制应用程序的生命周期。 输入模块主要描述了计算器键盘以及键盘的监听即主要负责读取用户的键盘输入以及 响应触屏的按键,需要监听手机动作以及用指针事件处理方法处理触屏的单击动作。同时提供了较为直观的键盘图形用户界面。 显示模块描述了计算器的显示区,即该区域用于显示用户输入的数据以及最终的计算结

android简单计算器代码

package hua.xing.demo; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; public class CalculatordemoActivity extends Activity implements OnClickListener { /** Called when the activity is first created. */ private Button but0 = null; private Button but1 = null; private Button but2 = null; private Button but3 = null; private Button but4 = null; private Button but5 = null; private Button but6 = null; private Button but7 = null; private Button but8 = null; private Button but9 = null; private Button dim = null; private Button add = null; private Button sub = null; private Button mult = null; private Button div = null; private Button equ = null; private EditText etext = null; private double value = 0;

Android项目-计算器(DOC)

学校代码: 10128 学号: 课程设计说明书 题目:移动版计算器 学生姓名: 学院:信息工程学院 班级:计12-1班 指导教师:庄旭菲 2015 年 7 月

目录 第一章总体功能介绍 0 1.1功能介绍 0 1.2软件设计 0 1.2.1系统软件的结构图 0 1.2.2功能的操作流程 0 1.2.3计算器模块 (1) 第二章各功能模块的具体实现 (2) 2.1系统主界面 (2) 2.2基本加减乘除界面 (9) 2.3其他运算界面 (1) 第三章调试及运算结果 (7) 3.1加法运算结果 (7) 3.2减法运算结果 (8) 3.3乘法运算结果 (8) 3.4除法运算结果 (8) 3.5带括号运算结果 (9) 3.6复合运算结果 (9) 第四章总结 (9)

摘要:Android是当今最重要的手机开发的平台之一,它是建立在Java基础上的,能够迅速建立手机软件的解决方案。Android的功能十分强大。成为当今软件行业的一股新兴力量。Android基于Linux平台,由操作系统、用户界面和应用软件组成,具有以下特点:开放性、应用程序无界限、应用程序是在平等条件下创建的、应用程序可以轻松的嵌入网络、应用程序可以并行运行。

第一章总体功能介绍 1.1功能介绍 计算器软件的系统功能介绍: (1)实现简单的要实现基本的加、减、乘、除四则运算。 (2)可以实现在前一步计算结果上继续作加、减、乘、除,即连加、减、乘、除。 (3)有清空功能,即清除所有数据,重新开始计算。 (4)拥有后退按键,可以实现清除单个错误数据。 (5)可以实现复合运算。 1.2软件设计 1.2.2功能的操作流程 首先用户根据自己的实际需要选择计算,得出程序结果,输入数据,选择运算符号,再输入数据,选择等号,即可以得出结果。

基于android平台的音乐播放器的课程设计报告

吉首大学 《疯狂Android讲义》课程设计 报告书 题目音乐播放器 作者孙琛赵凡卓朱世康王喜元 所属学院软件服务外包学院 专业年级移动互联2012级 指导老师祝勇军 写作时间 2014年4月01日 吉首大学软件学院教务办制 第1章绪论 (4) 1.1 选题的目的及意义 (4) 1.2 本课题涉及内容的研究现状 (4) 1.3 本系统要实现的基本目标和研究内容 (5) 第3章需求分析 (5) 3.1 软件目标 (5) - I -

3.3系统界面需求 (5) 3.4系统性能需求 (6) 第4章系统的总体设计 (6) 4.1 设计思想 (6) 4.2 系统功能结构图 (6) 第5章数据库的设计 (7) 5.1 数据库表的介绍 (7) 5.1.1用户注册表 (7) 5.1.2 完成下载的音乐表 (7) 5.1.3 播放清单表 (7) 5.2 数据库连接 (7) 第6章系统详细设计 (7) 6.1 欢迎界面模块详细设计 (7) 6.2播放列表模块详细设计 (7) 6.3 歌曲播放模块详细设计 (8) 6.4 本地音乐模块详细设计 (8) 6.5 会员登录模块详细设计 (8) 6.6 会员注册模块详细设计··············错误!未定义书签。 6.7 音乐下载模块详细设计 (9) 6.8 设置皮肤模块详细设计 (9) 第7章系统测试 (9) - II -

7.2 图片上传功能测试 (9) 7.3 文件上传功能测试················错误!未定义书签。 结论 (10) - III -

第1章绪论 1.1 选题的目的及意义 现今社会生活紧张,而欣赏音乐是其中最好的舒缓压力的方式之一,本项目的目的是开发一个可以播放主流音乐文件格式的播放器,本设计的实现的这主要功能是播放Mp3,Wav多种格式的音乐文件,并且能够控制播放,暂停,停止,上一曲,下一曲,音量调节,视觉外观,播放列表和歌曲文件的管理操作等多种播放控制功能,界面简明,操作简单。 本项目是一款基于Android手机平台的音乐播放器,使Android手机拥有个性的多媒体播放器,使手机显得更生动灵活化,与人们更为接近,让手机主人随时随地处于音乐视频的旋律之中。使人们的生活更加多样化。也使设计者更加熟练Android的技术和其它在市场上的特点 1.2 本课题涉及内容的研究现状 Android一词的本义指“机器人”,同时也是Google于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成,号称是首个为移动终端打造的真正开放和完整的移动软件。 Android是基于Linux内核的软件平台和操作系统,早期由Google开发(在华注册商标名为“安致”),后由开放手机联盟(Open Handset Alliance)开发。它采用了软件堆层(software stack,又名以软件叠层)的架构,主要分为三部分。低层以Linux内核工作为基础,只提供基本功能;其他的应用软件则由各公司自行开发,以Java作为编写程序的一部分。另外,为了推广此技术,Google 和其它几十个手机公司建立了开放手机联盟。Android在未公开之前常被传闻为Google电话或gPhone。大多传闻认为Google开发的是自己的手机电话产品,而不是一套软件平台。到了2010年1月,Google开始发表自家品牌手机电话的Nexus One。目前最新SDK版本为Android 4.0.3。 - 4 -

相关主题
文本预览
相关文档 最新文档