基于Android的Mp3播放器毕业设计_第1页
基于Android的Mp3播放器毕业设计_第2页
基于Android的Mp3播放器毕业设计_第3页
基于Android的Mp3播放器毕业设计_第4页
基于Android的Mp3播放器毕业设计_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要由Google倡导发起的开放式手机联盟及其推出的Android平台一经发布便在业内引起了轩然大波。在此背景下本人利用Eclipse和AndroidSDK开发工具设计出了一款基于Android的MP3播放器。文章首先介绍了Android技术及其特点,然后介绍Android的开发环境,接着对系统进行了总体分析,在设计出了功能结构图和流程图之后,在分析需求的基础上详细阐述了MP3播放器的设计与实现过程,最后测试系统,对播放器的不足进行总结。该播放器支持搜索本地音乐、播放音乐,集播放、暂停、停止、上一首、下一首、音量调节、歌词显示等功能于一体。关键字:Android系统;MP3播放器Abstract

ByGoogleadvocatethereleaseoftheleagueanditsmobilephonelaunchedthelaunchoftheAndroidplatformhasissuedandcausedastirintheindustry.IuseEclipseandAndroidSDKdevelopmenttoolsdesignaMP3playerwhichbasedonAndroid.ThisarticlefirstintroducestheAndroidtechnologyandfeatures,AndthenintroducedtheAndroiddevelopmentenvironment,Thenthesystemasawholeanalysis,Inafunctionstructurechartanddesignflowchartafter,OnthebasisofanalysisdemandexpoundstheMP3playerafterthedesignandrealizationoftheprocess,Thelasttestsystem,Tothedeficiencyoftheplayersweresummarizedinthispaper.Theplayersupportsplaybackoflocalmusic,search,andithasacertainpracticality.Themusicplayerepisodepause,stop,andaon,next,volumeadjustment,lyricsdisplayfunctions,suchasperformanceisgood,anditcanoperateindependentlyintheAndroidsystem.Keywords:Androidsystem;MP3player目录TOC\o"1-3"\h\u1绪论 11.1课题背景 11.2Android的介绍 11.3Android开发环境的搭建 21.4AndroidSDK1.6的模拟器的介绍 52系统的总体设计概要 62.1总体功能架构 62.2功能流程图 73详细设计与实现 83.1Android程序设计的一般方法 83.2MP3播放器的模块设计 83.2.1编码规范 83.2.2界面的搭建 83.2.3播放模块 114测试与分析 144.1软件测试准备工作 144.2系统测试内容概要 144.2.1列表的更新测试 144.2.2各种格式的歌曲的详情查看测试 144.2.3测试音乐播放器主页面的显示以及一些主要操作 144.2.4测试音乐播放器的其他一些基本操作 155.结束语 166.参考文献 171绪论1.1课题背景Android一词的本义指“机器人”,同时也是Google于2007年11月5日宣布的基于Linux平台的开源移动终端操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成,是首个为移动终端打造的真正开放和完整的移动软件。随着科技的不断发展,手机不再只是人们日常生活的移动通信工具,而是一个多媒体平台,可提供强大的多媒体功能,越来越多的人喜欢用手机听音乐、看电影。Android系统内置的音乐播放器基于媒体库对歌曲进行管理,并且支持歌词的同步显示。对于部分用户,操作起来会有所不便。对于Android手机操作系统,可以充分利用它已经习惯的基于文件浏览器形式播放器的丰富的可编程扩展性,开发出新的播放器应用软件。1.2Android的介绍近年来,Google智能手机平台Android得到了手机行业及客户的普遍认可,呈爆炸性的趋势发展,为移动运营商、手机制造商、软件开发商及客户提供了无限的发展空间,使市场上不断涌现出大量的基于Android平台的软件和增值服务。(1)Android系统的架构:分层的构架的好处是下层为上层提供统一服务,屏蔽本层及以下层的差异,当本层及以下层发生了变化不会影响到上层。也就是说各层各司其职,各层提供固定的SAP。从架构来看Android分为四层,从低层到高层分别是Linux核心层、系统运行库层、应用程序框架层、和应用程序层。Linux核心层为使用C实现的代码内核(Linux内核+driver),运行于内核空间。系统运行库层(Android运行环境)为使用C/C++语言编写的程序库,运行于用户空间。应用程序和应用程序框架层主要是使用Java编写的Java应用程序,运行于用户层。(2)Android操作平台的发展:如今已经成为了智能手机行业的支柱平台之一。它不但一举超越了iPhone的市场占有率,还吸引了大量iPhone及其它平台开发者!Android平台拥有多重开发环境,除了智能手机外,开发者还能在采用了Android平台的平板电脑、GoogleTV、MID及MP4产品上开发应用程序。从而拥有超越其它系统平台的多重环境优势。根据美国移动广告商AdMob的统计,iPhoneOS在美国本土的网络流量占了美国本土全部移动互联网流量的39%,而Android系统首次超越了它,达到了46%。不过要放在世界范围内来看,iPhoneOS仍占了46%,而Android只占了25%,还是排第二,不过仍能说明Android的来势汹汹。(3)Android系统的“开放”性:任何手机制造商均可无需支付专利费即可将此系统运用在自己的手机Google的以Linux为内核的Android移动手机平台从诞生之日起短时间内便在世界范围里获得了广泛的关注。最的报告显示在中国,一个拥有最大的人口,拥有最多的手机用户,拥有巨大的增长潜力的国家,这个系统的占有率沿着一个倒抛物线的增长曲率成为手机操作系统中的霸主。开放手机联盟的成立和Android的推出是对现状的重大改变,在带来初步效益之前,还需要不小的耐心和高昂的投入。但是,我们认为全球移动用户从中能获得的潜在利益是值得付出这些努力的。谷歌将继续努力,让这些服务变得更好,同时也将添加更有吸引力的特性、应用和服务。1.3Android开发环境的搭建本系统以Android开发工具为平台,搭建过程如下:(1)安装JDK1.6.11用户可下载程序JDK1.6.11,然后就解压,按步骤安装就可以使用了。(2)eclipse的安装与配置首先,要安装eclipse软件必须要有相应的安装程序,用户可下载程序eclipse-java-galileo-win32,然后就解压就可以使用了。Eclipse的配置如下图1.1:图1.1Eclipse的配置图(3)在eclipse中配置Android所需插件A:运行eclipse,点击help选项中的InstallnewSoftware,然后导入ADT插件压缩包;B:安装android-sdk-windows,点击window选项里的Perferences,然后选择 android,导入android-sdk-windows。配置插件图如下:图1.2配置插件图(4)环境变量的设置右击我的电脑选择属性,在属性栏中选择高级,进行环境变量的设置:A:新建环境变量,变量名JAVA_HOME,变量值D:\ProgramFiles\Java\jdk1.6.0_14B:修改环境变量,变量名Path,变量值%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\ProgramFiles\ATITechnologies\ATI.ACE\Core-Static;C:\ProgramFiles\CommonFiles\ThunderNetwork\KanKan\Codecs;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;C:\ProgramFiles\TortoiseSVN\bin,环境变量设置如下图1.3:图1.3环境变量设置图(5)ADT安装ADT实际上是一个工具,它可以连接SDK和Eclipse,帮助Eclipse找到SDK打开Eclipse界面,进入菜单中的“Help”->“InstallNewSoftware”,点击Add按钮弹出对话框要求输入Name和Location,完成之后,选择Window>Preferences;在左边的面板选择Android,然后在右侧点击Browse;并选中SDK路径,本机为;D:Android\Android-SDK_r07-windows;点击Apply和OK之后配置完成。1.4AndroidSDK1.6的模拟器的介绍AndroidSDK包含一个Eclipse插件,名为ADT。这个IDE工具用于开发、调试和测试Java应用程序。也可以单独使用AndroidSDK,使用命令行工具代替ADT。两种方法都支持使用模拟器来运行、调试和测试应用程序。大多数应用程序开发工作都不需要真实设备。全功能的Android模拟器能够模拟大部分的设备功能。模拟器不能模拟USB连接、照相机与视频采集、耳机、电池和蓝牙。Android模拟器使用一种名为QEMU的开源“处理器模拟器”技术来完成它的工作,此技术由FabriceBellard开发。这项技术还支持在一个操作系统上模拟另一个操作系统,而不用考虑采用了何种处理器。QEMU支持在CPU级别上进行模拟。在Android模拟器中,处理器基于ARM架构。ARM是一种基于RISC的32位微处理器架构,其设计上的简单性和较高的速度通过指令集中精减的指令来实现。模拟器在此模拟处理器上运行Linux的Android版本。2系统的总体设计概要2.1总体功能架构MP3播放器的设计分成了界面搭建模块,播放模块和编码模块,界面有主界面,播放界面,歌曲列表界面;播放模块中有许多的按钮,如暂停,下一首,音量调节按钮等。本设计根据MP3播放器的功能将系统按照自顶向下的方式进行设计,播放器播放器编码模块播放模块界面搭建模块编码模块播放模块界面搭建模块模块编码主程序编码上一首停止音量下一首暂停歌曲列表界面播放界面主界面模块编码主程序编码上一首停止音量下一首暂停歌曲列表界面播放界面主界面图2.1播放器的功能划分结构图2.2功能流程图根据MP3播放器的功能设计,制定出的的流程图如下:程序启动程序启动播放主界面播放主界面播放列表播放列表选择歌曲选择歌曲播放歌曲播放歌曲退出退出图2.2播放器的功能流程图3详细设计与实现3.1Android程序设计的一般方法首先搭建平台,播放器的设计界面可以通过Android的绘图技术实现,然后手动编写每个模块的Java程序,最后调试程序。3.2MP3播放器的模块设计3.2.1编码规范首先从布局文件说起,布局文件名称的定义必须为小写字母,否者无法生成R类,尽量不要用缩写。以表达清楚该文件用途为本,通常情况下控件ID的定义,ID的定义一律为小写,例如:一用户名TextView可以定义为:@+ID/username_view。以“名词_控件名称”这种形式定义。其次是图片的定义格式,图片的定义也是为解释清楚用途为准,参照这种定义格式“btn_background_ok.png”string类的name定义,这里可以按照JAVA中变量的定义方式定义。首字母小写,驼峰命名法。例如:<stringname="userName_view">用户名:</string>最后类名与变量的定义,定义与用户交互的类,××Activity.java。自定义变量一律以小写m开头例如:EditTextmUserName=3.2.2界面的搭建界面的搭建模块各主要界面运用的是Android的绘图技术。绘制图形通常使用Android.View、View。界面搭建会用到各种控件,如:Button或ImageButton,控件有RadioButton,ToggleButton,和ZoomButton。控件的设置涉及到容器的使用,使用的容器有AndroidRelativeLayout容器、AndroidLienearLayout容器等,控件布局运用到线性布局、绝对布局、表格布局等。MP3播放器的图标如下图3.1:图3.1图标界面图图3.2曲目界面图音乐文件播放时的播放界面如下图3.3:图3.3播放列表界面图窗口布局文件位于res/layout目录下,在layout目录下创建布局文件。创建布局文件步骤:(1)在左侧栏中的layout文件夹上右键,选择New->File,在弹出的窗口中的Filename处填入songlist.xml。单击Finish,即创建了一个空的布局文件。如果对Android布局XML文件的语法非常熟悉,那么可以直接编辑该文件,但是一般情况下,我们还是用ADT工具进行所见即所得的编辑。(2)Android的窗口是由Layout和View组成的,Layout中可以包含View和Layout。这个应用的界面排列较简单,因此,最外层的Layout可以采用LinerLayout这种比较简单的格式。要添加它,先点击右侧边栏中Outline选项卡下的绿色“+”按钮,在弹出的窗口中选择LinerLayout,就添加成功了,在Outline窗口中就可以看到刚刚添加的这一项,同时中间的主窗口中也会显示一个空的黑色窗体。另外,还可以修改某个Layout或View的属性,方法是在右侧的Outline窗口中选中要修改的窗口元素,在下侧边栏中,切换到Properties选项卡,就可以看到所有的项目属性。图3.4窗口属性图大多数的选项都不需要手动设置。下面继续添加其它的窗口元素。Layout下可以嵌套其它的Layout和View,界面的上部分就是在最外层的LinerLayout下再放置了一个LinerLayout,然后在里层的LinerLayout里放置一排ImageButton。界面的下半部分是一个ListView(或者TextView)。当要在某个Layout里添加元素时,只需要先点击选中该Layout然后再点击“+”图标,就可以添加子元素到其中。这时还需要对各个元素的属性作一些修改。例如对于5个ImageButton,需要设置其Src属性。这个属性表示的是图片的来源。例如back按钮上要显示是的一个指向左边的箭头,这个箭头图标名为back.png,在前述步骤中已经被放在了res/drawable目录中了。把这个图标设为back按钮的图片来源,就需要在Src属性处填入"@drawable/back"。"@drawable/back"就是引用这个箭头图标资源的ID。如左图所示,在第一个LinerLayout下面,还添加了一个View。这个View中没有显示元素,而只是起一个分隔线的作用,让界面更美观一些。这个View的Layoutheight属性设为5dip,在显示时,上方的按钮就不会和下方的歌曲列表挤在一起了。在空白View的下方,可以看到,分别添加了一个ListView和一个TextView。值得注意的是,这两个元素其实并不会同时显示。这是因为它们的ID分别为"@Android:id/list"和"@android:id/empty",这种ID属于Android系统的特殊ID,分别表示列表时要显示的和列表中无条目时要显示的元素。这样的话就不需要再编写代码来根据列表是否为空来显示相应元素了。最后,还可以根据需要,把元素的ID改成便于记忆的名称这样在使用时就更容易记忆。完成所有这些工作后,在Eclipse的主窗口中,就可以看到程序界面的预览效果。3.2.3播放模块播放模块中在MP3Player.java文件中定义一个FrontMusic()和nextMusic()来实现上一曲和下一曲的切换;用mMediaPlayer=newmMediaPlayer()来实现播放列表的更新;setLooping()用来实现是否循环播放等。界面如下:播放模块界面有许多的按钮,如暂停,停止,下一首等,还有歌名的显示,这些功能的实现的主程序如下:publicclassMp3InfoimplementsSerializable{ privatestaticfinallongserialVersionUID=1L; privateStringid; privateStringmp3Name; privateStringmp3Size; privateStringman;首先定义MP3的名字和大小;在播放界面中会显示歌曲的名字和歌唱者的名字;publicList<Mp3Info>getMp3Files(Stringpath){ List<Mp3Info>mp3Infos=newArrayList<Mp3Info>(); Filefile=newFile(SDCardRoot); File[]files=file.listFiles();读取目录中的mp3的名字和大小;privateSeekBaraudioVolume=null;定义了音量的大小;在界面中用户可以调节音量的大小,如果音量调节为0就会变成静音模式; mNextbtn.setOnClickListener(newImageButton.OnClickListener(){@OverridepublicvoidonClick(Viewv){ NextMusic(); }});点击下一首的程序:NextMusic()定义了下一首个歌曲,newImageButton是下一首的按钮的定义,以下程序是将按钮与下一首相连接。 mLastbtn.setOnClickListener(newImageButton.OnClickListener(){@Override publicvoidonClick(Viewv){ TODOAuto-generatedmethodstub LastMusic(); }});点击上一首的程序:跟前面一样,Lastmusic定义上一首歌曲。isrun=true;isauto=false;用来判断歌曲是否在播,viewlrcKLOK.Stop()是停止播放歌曲的定义,mMediaPlayer.pause()是暂停歌曲播放的定义。 mPausebtn.setOnClickListener(newImageButton.OnClickListener(){ @Override publicvoidonClick(Viewv){ TODOAuto-generatedmethodstub isrun=true; isauto=false;mPausebtn.setVisibility(View.GONE); mStartbtn.setVisibility(View.VISIBLE); //是否正在播放 if(mMediaPlayer.isPlaying()){ viewlrcKLOK.Stop(); mMediaPlayer.pause(); } }进入主界面就会看到很多按钮,mPausebtn.setVisibility(View.GONE)是隐藏暂停按钮;点击开始按钮就是播放当前的音乐,mStartbtn.setVisibility(View.VISIBLE)是显示启动按钮,点击下一首会播放下一个音乐文件,如果喜欢这首歌,可以选择下载,下载过程会看到进度条的显示,播放结束可以退出程序或选择别的歌曲。4测试与分析4.1软件测试准备工作在AndroidSDK1.6的模拟器上对MP3播放器的各项功能进行调试和测试。调试结束后,将编译生成的安装文件拷贝到SD卡,利用Android文件管理器将播放器软件安装到OMAP3530开发板的系统上,将测试用的音乐文件及对应的歌词文件拷贝到SD卡,0MAP3530开发板上的MP3播放器可以通过文件浏览器选择音乐文件并正常播放。4.2系统测试内容概要4.2.1列表的更新测试1、当列表中包含已被删除、移动或者更名的歌曲时,验证列表的更新功能2、开机时使用默认列表,关机后对默认列表的目录进行歌曲的添加、删除操作,验证再开机后自动4.2.2各种格式的歌曲的详情查看测试1、包括ID3v1、ID3v2信息的M

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论