《基于android的mp3播放器设计大学本科毕业论文.doc》由会员分享,可在线阅读,更多相关《基于android的mp3播放器设计大学本科毕业论文.doc(20页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、摘要由Google倡导发起的开放式手机联盟及其推出的Android平台一经发布便在业内引起了轩然大波。在此背景下本人利用Eclipse和Android SDK开发工具设计出了一款基于Android的MP3播放器。文章首先介绍了Android技术及其特点,然后介绍Android的开发环境,接着对系统进行了总体分析,在设计出了功能结构图和流程图之后,在分析需求的基础上详细阐述了MP3播放器的设计与实现过程,最后测试系统,对播放器的不足进行总结。该播放器支持搜索本地音乐、播放音乐,集播放、暂停、停止、上一首、下一首、音量调节、歌词显示等功能于一体。关键字:Android系统;MP3播放器 Abstr
2、act By Google advocate the release of the league and its mobile phone launched the launch of the Android platform has issued and caused a stir in the industry. I use Eclipse and Android SDK development tools design a MP3 player which based on Android. This article first introduces the Android techno
3、logy and features, And then introduced the Android development environment, Then the system as a whole analysis, In a function structure chart and design flow chart after, On the basis of analysis demand expounds the MP3 player after the design and realization of the process, The last test system, T
4、o the deficiency of the players were summarized in this paper. The player supports playback of local music, search, and it has a certain practicality. The music player episode pause, stop, and a on, next, volume adjustment, lyrics display functions, such as performance is good, and it can operate in
5、dependently in the Android system. Keywords: Android system; MP3 player 目 录1 绪 论11.1 课题背景11.2 Android的介绍11.3 Android开发环境的搭建21.4 Android SDK 1.6的模拟器的介绍52 系统的总体设计概要62.1 总体功能架构62.2 功能流程图73 详细设计与实现83.1 Android程序设计的一般方法83.2 MP3播放器的模块设计83.2.1编码规范83.2.2界面的搭建83.2.3播放模块114 测试与分析144.1软件测试准备工作144.2系统测试内容概要144.
6、2.1 列表的更新测试144.2.2各种格式的歌曲的详情查看测试144.2.3测试音乐播放器主页面的显示以及一些主要操作144.2.4 测试音乐播放器的其他一些基本操作155.结束语16.参考文献171 绪 论1.1 课题背景Android一词的本义指“机器人”,同时也是Google于2007年11月5日宣布的基于Linux平台的开源移动终端操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成,是首个为移动终端打造的真正开放和完整的移动软件。随着科技的不断发展,手机不再只是人们日常生活的移动通信工具,而是一个多媒体平台,可提供强大的多媒体功能,越来越多的人喜欢用手机听音乐、看电影。
7、Android系统内置的音乐播放器基于媒体库对歌曲进行管理,并且支持歌词的同步显示。对于部分用户,操作起来会有所不便。对于Android手机操作系统,可以充分利用它已经习惯的基于文件浏览器形式播放器的丰富的可编程扩展性,开发出新的播放器应用软件。1.2 Android的介绍近年来,Google智能手机平台Android得到了手机行业及客户的普遍认可, 呈爆炸性的趋势发展,为移动运营商、手机制造商、软件开发商及客户提供了无限的发展空间,使市场上不断涌现出大量的基于Android平台的软件和增值服务。(1)Android系统的架构:分层的构架的好处是下层为上层提供统一服务,屏蔽本层及以下层的差异,
8、当本层及以下层发生了变化不会影响到上层。也就是说各层各司其职,各层提供固定的SAP。从架构来看Android分为四层,从低层到高层分别是Linux核心层、系统运行库层、应用程序框架层、和应用程序层。Linux核心层为使用C实现的代码内核(Linux内核+driver),运行于内核空间。系统运行库层(Android运行环境)为使用C/C+ 语言编写的程序库,运行于用户空间。应用程序和应用程序框架层主要是使用Java编写的Java 应用程序,运行于用户层。(2)Android操作平台的发展:如今已经成为了智能手机行业的支柱平台之一。它不但一举超越了iPhone的市场占有率,还吸引了大量iPhone
9、及其它平台开发者!Android平台拥有多重开发环境,除了智能手机外,开发者还能在采用了Android平台的平板电脑、Google TV、MID及MP4产品上开发应用程序。从而拥有超越其它系统平台的多重环境优势。根据美国移动广告商AdMob的统计,iPhoneOS在美国本土的网络流量占了美国本土全部移动互联网流量的39%,而Android系统首次超越了它,达到了46%。不过要放在世界范围内来看,iPhone OS仍占了46%,而Android只占了25%,还是排第二,不过仍能说明 Android的来势汹汹。 (3)Android系统的“开放”性:任何手机制造商均可无需支付专利费即可将此系统运用
10、在自己的手机 Google的以Linux为内核的Android移动手机平台从诞生之日起短时间内便在世界范围里获得了广泛的关注。最的报告显示在中国,一个拥有最大的人口,拥有最多的手机用户,拥有巨大的增长潜力的国家,这个系统的占有率沿着一个倒抛物线的增长曲率成为手机操作系统中的霸主。开放手机联盟的成立和 Android的推出是对现状的重大改变,在带来初步效益之前,还需要不小的耐心和高昂的投入。但是,我们认为全球移动用户从中能获得的潜在利益是值得付出这些努力的。谷歌将继续努力,让这些服务变得更好,同时也将添加更有吸引力的特性、应用和服务。1.3 Android开发环境的搭建本系统以Android开发
11、工具为平台,搭建过程如下:(1)安装JDK1.6.11用户可下载程序JDK1.6.11,然后就解压,按步骤安装就可以使用了。(2)eclipse的安装与配置首先,要安装eclipse 软件必须要有相应的安装程序,用户可下载程序eclipse-java-galileo-win32,然后就解压就可以使用了。Eclipse的配置如下图1.1:图1.1 Eclipse的配置图 (3)在eclipse中配置Android所需插件A:运行eclipse,点击help选项中的Install new Software,然后导入ADT插件压缩包;B:安装android-sdk-windows,点击window选
12、项里的Perferences,然后选择android,导入android-sdk-windows。配置插件图如下:图1.2 配置插件图(4)环境变量的设置右击我的电脑选择属性,在属性栏中选择高级,进行环境变量的设置:A:新建环境变量,变量名JAVA_HOME,变量值D:Program FilesJavajdk1.6.0_14B:修改环境变量,变量名Path,变量值%SystemRoot%system32;%SystemRoot%;%SystemRoot%System32Wbem;C:Program FilesATI TechnologiesATI.ACECore-Static;C:Progra
13、m FilesCommon FilesThunder NetworkKanKanCodecs;%JAVA_HOME%bin;%JAVA_HOME%jrebin;C:Program FilesTortoiseSVNbin,环境变量设置如下图1.3:图1.3 环境变量设置图(5)ADT安装ADT实际上是一个工具,它可以连接SDK和Eclipse,帮助Eclipse找到SDK打开Eclipse界面,进入菜单中的“Help” “InstallNewSoftware”,点击Add按钮弹出对话框要求输入Name和Location,完成之后,选择Window Preferences;在左边的面板选择Andr
14、oid,然后在右侧点击Browse;并选中SDK路径,本机为;D:AndroidAndroidSDKr07windows;点击Apply和OK之后配置完成。1.4 Android SDK 1.6的模拟器的介绍Android SDK包含一个Eclipse插件,名为ADT。这个IDE工具用于开发、调试和测试Java应用程序。也可以单独使用Android SDK,使用命令行工具代替ADT。两种方法都支持使用模拟器来运行、调试和测试应用程序。大多数应用程序开发工作都不需要真实设备。全功能的Android模拟器能够模拟大部分的设备功能。模拟器不能模拟USB连接、照相机与视频采集、耳机、电池和蓝牙。And
15、roid模拟器使用一种名为QEMU的开源“处理器模拟器”技术来完成它的工作,此技术由Fabrice Bellard开发。这项技术还支持在一个操作系统上模拟另一个操作系统,而不用考虑采用了何种处理器。QEMU支持在CPU级别上进行模拟。在Android模拟器中,处理器基于ARM架构。ARM是一种基于RISC的32位微处理器架构,其设计上的简单性和较高的速度通过指令集中精减的指令来实现。模拟器在此模拟处理器上运行Linux的Android版本。2 系统的总体设计概要2.1 总体功能架构MP3播放器的设计分成了界面搭建模块,播放模块和编码模块,界面有主界面,播放界面,歌曲列表界面;播放模块中有许多的
16、按钮,如暂停,下一首,音量调节按钮等。本设计根据MP3播放器的功能将系统按照自顶向下的方式进行设计,播放器编码模块播放模块界面搭建模块模块编码主程序编码上一首停止音量下一首暂停歌曲列表界面播放界面主界面 图2.1 播放器的功能划分结构图2.2 功能流程图根据MP3播放器的功能设计,制定出的的流程图如下:程序启动播放主界面播放列表选择歌曲播放歌曲退出 图2.2播放器的功能流程图3 详细设计与实现3.1 Android程序设计的一般方法首先搭建平台,播放器的设计界面可以通过Android的绘图技术实现,然后手动编写每个模块的Java程序,最后调试程序。3.2 MP3播放器的模块设计3.2.1编码规
17、范首先从布局文件说起,布局文件名称的定义必须为小写字母,否者无法生成R类,尽量不要用缩写。以表达清楚该文件用途为本,通常情况下控件ID的定义,ID的定义一律为小写,例如:一用户名 TextView 可以定义为:+ID/username_view 。以“名词_控件名称”这种形式定义。其次是图片的定义格式,图片的定义也是为解释清楚用途为准,参照这种定义格式“btn_background_ok.png”string类的name定义,这里可以按照JAVA中变量的定义方式定义。首字母小写,驼峰命名法。例如:用户名:最后类名与变量的定义 ,定义与用户交互的类,Activity.java 。自定义变量一律以
18、小写m开头 例如: EditText mUserName=3.2.2界面的搭建界面的搭建模块各主要界面运用的是Android的绘图技术。绘制图形通常使用Android.View、View。界面搭建会用到各种控件,如:Button或ImageButton,控件有RadioButton,ToggleButton,和ZoomButton。控件的设置涉及到容器的使用,使用的容器有Android RelativeLayout容器 、Android LienearLayout容器等,控件布局运用到线性布局、绝对布局、表格布局等。MP3播放器的图标如下图3.1:图3.1图标界面图 图3.2曲目界面图音乐文件
19、播放时的播放界面如下图3.3:图3.3播放列表界面图窗口布局文件位于res/layout目录下,在layout目录下创建布局文件。创建布局文件步骤:(1)在左侧栏中的layout文件夹上右键,选择New-File,在弹出的窗口中的File name处填入songlist.xml。单击Finish,即创建了一个空的布局文件。如果对Android布局XML文件的语法非常熟悉,那么可以直接编辑该文件,但是一般情况下,我们还是用ADT工具进行所见即所得的编辑。(2)Android的窗口是由Layout和View组成的,Layout中可以包含View和Layout。这个应用的界面排列较简单,因此,最外层
20、的Layout可以采用LinerLayout这种比较简单的格式。要添加它,先点击右侧边栏中Outline选项卡下的绿色“+”按钮,在弹出的窗口中选择LinerLayout,就添加成功了,在Outline窗口中就可以看到刚刚添加的这一项,同时中间的主窗口中也会显示一个空的黑色窗体。另外,还可以修改某个Layout或View的属性,方法是在右侧的Outline窗口中选中要修改的窗口元素,在下侧边栏中,切换到Properties选项卡,就可以看到所有的项目属性。图3.4窗口属性图大多数的选项都不需要手动设置。下面继续添加其它的窗口元素。Layout下可以嵌套其它的Layout和View,界面的上部分
21、就是在最外层的LinerLayout下再放置了一个LinerLayout,然后在里层的LinerLayout里放置一排ImageButton。界面的下半部分是一个ListView(或者TextView)。当要在某个Layout里添加元素时,只需要先点击选中该Layout然后再点击“+”图标,就可以添加子元素到其中。这时还需要对各个元素的属性作一些修改。例如对于5个ImageButton,需要设置其Src属性。这个属性表示的是图片的来源。例如back按钮上要显示是的一个指向左边的箭头,这个箭头图标名为back.png,在前述步骤中已经被放在了res/drawable目录中了。把这个图标设为bac
22、k按钮的图片来源,就需要在Src属性处填入drawable/back。drawable/back就是引用这个箭头图标资源的ID。如左图所示,在第一个LinerLayout下面,还添加了一个View。这个View中没有显示元素,而只是起一个分隔线的作用,让界面更美观一些。这个View的Layout height 属性设为5dip,在显示时,上方的按钮就不会和下方的歌曲列表挤在一起了。在空白View的下方,可以看到,分别添加了一个ListView和一个TextView。值得注意的是,这两个元素其实并不会同时显示。这是因为它们的ID分别为Android:id/list和android:id/empt
23、y,这种ID属于Android系统的特殊ID,分别表示列表时要显示的和列表中无条目时要显示的元素。这样的话就不需要再编写代码来根据列表是否为空来显示相应元素了。最后,还可以根据需要,把元素的ID改成便于记忆的名称这样在使用时就更容易记忆。完成所有这些工作后,在Eclipse的主窗口中,就可以看到程序界面的预览效果。3.2.3播放模块播放模块中在MP3Player.java文件中定义一个FrontMusic( )和nextMusic( )来实现上一曲和下一曲的切换;用mMediaPlayer=new mMediaPlayer( )来实现播放列表的更新;setLooping( )用来实现是否循环播
24、放等。界面如下:播放模块界面有许多的按钮,如暂停,停止,下一首等,还有歌名的显示,这些功能的实现的主程序如下:public class Mp3Info implements Serializableprivate static final long serialVersionUID = 1L;private String id;private String mp3Name;private String mp3Size;private String man;首先定义MP3的名字和大小;在播放界面中会显示歌曲的名字和歌唱者的名字;public List getMp3Files(String pat
25、h) List mp3Infos = new ArrayList( );File file = new File(SDCardRoot );File files = file.listFiles( );读取目录中的mp3的名字和大小;private SeekBar audioVolume = null;定义了音量的大小;在界面中用户可以调节音量的大小,如果音量调节为0就会变成静音模式;mNextbtn.setOnClickListener(new ImageButton.OnClickListener( ) Override public void onClick(View v) NextMu
26、sic( ); );点击下一首的程序:NextMusic( )定义了下一首个歌曲,new ImageButton是下一首的按钮的定义,以下程序是将按钮与下一首相连接。 mLastbtn.setOnClickListener(new ImageButton.OnClickListener( ) Overridepublic void onClick(View v) TODO Auto-generated method stubLastMusic( ); );点击上一首的程序:跟前面一样,Lastmusic定义上一首歌曲。isrun = true;isauto = false;用来判断歌曲是否在播
27、,viewlrcKLOK.Stop( )是停止播放歌曲的定义,mMediaPlayer.pause( )是暂停歌曲播放的定义。mPausebtn.setOnClickListener(new ImageButton.OnClickListener( ) Overridepublic void onClick(View v) TODO Auto-generated method stubisrun = true;isauto = false;mPausebtn.setVisibility(View.GONE); mStartbtn.setVisibility(View.VISIBLE); / 是
28、否正在播放if (mMediaPlayer.isPlaying( ) viewlrcKLOK.Stop( );mMediaPlayer.pause( );进入主界面就会看到很多按钮,mPausebtn.setVisibility(View.GONE) 是隐藏暂停按钮;点击开始按钮就是播放当前的音乐,mStartbtn.setVisibility(View.VISIBLE)是显示启动按钮,点击下一首会播放下一个音乐文件,如果喜欢这首歌,可以选择下载,下载过程会看到进度条的显示,播放结束可以退出程序或选择别的歌曲。4 测试与分析4.1软件测试准备工作在Android SDK 16的模拟器上对MP3
29、播放器的各项功能进行调试和测试。调试结束后,将编译生成的安装文件拷贝到SD卡,利用Android文件管理器将播放器软件安装到OMAP3530开发板的系统上,将测试用的音乐文件及对应的歌词文件拷贝到SD卡,0MAP3530开发板上的MP3播放器可以通过文件浏览器选择音乐文件并正常播放。4.2系统测试内容概要4.2.1 列表的更新测试1、当列表中包含已被删除、移动或者更名的歌曲时,验证列表的更新功能2、开机时使用默认列表,关机后对默认列表的目录进行歌曲的添加、删除操作,验证再开机后自动4.2.2各种格式的歌曲的详情查看测试1、包括ID3v1、ID3v2信息的MP32、其他格式歌曲的详情查看测试3、
30、以上的测试中,注意详情中包含的各项内容的正确性,注意内容超长情况下的显示4.2.3测试音乐播放器主页面的显示以及一些主要操作1、无歌曲情况下的界面显示2、有歌曲无歌词且歌曲名超长的情况下(播放前、播放中、暂停情况)3、有歌曲有歌词的情况下(播放前、播放中、暂停情况)4.2.4 测试音乐播放器的其他一些基本操作1、调节音量的测试2、对支持的音乐格式,进行快进、快退测试3、用左右方向键进行切换歌曲的测试4、用左右方向键进行切换歌曲的测试5、测试过程中,关注主页面的显示变化及播放效果5.结束语在本次毕业设计中,我能按时完成老师布置的课题任务,从对课题的相关资料的整理,然后对Android开发平台的学
31、习,对Android绘图技术的学习,提高了分析和处理问题的本领,学习了论文的写作方法和步骤。 通过本次毕业设计,对Android有了一定的认识,对Android的四大组件Activity,Service,Broadcast,ContentProvider也掌握了很多,以及SQLlite数据库也接触了一些,这样以后再设计有关Android的软件就会得心应手,效率也会高很多。除了学会各个控件的使用外,还学会底层的处理,明白Android系统结构,学会编译系统环境等。把Android学习好,以后工作也许会用到Android,现在就是一个学习的好机会,努力学好,掌握Android知识。我把这次毕业设计
32、当作是我踏入社会前的一次实践,了解并学会了Android,工作时就可以得心应手的使用,给我的大学之旅画上一个完美的句号。由于时间的限制,本系统虽已经完成了预期的大部分功能,但还有一些地方有待于进一步的完善。界面不够完美。程序界面做的比较单一不够美观,缺少层次性的美感,观赏性比较差;没有下载功能,不能满足喜欢在线听歌人群的需要。.参考文献1 深入浅出Google Android/E2Ecloud 工作室编著。-北京:人民邮电出版社,2009.82 Google Android开发入门与实战/靳岩,姚尚朗编著。-北京:人民邮电出版社,2009.73 Android应用框架原理与程序设计36技/高焕堂著; 4Bruce Eckel. Thinking In JavaM.北京:机械工业出版社,2004,33-44.5左天军,杨学良.采用JMF开发流媒体应用的研究J.微计算机应用,2001,3(3):31-39.6万年红,王雪蓉. Java技术在多媒体领域应用探讨J.科技信息,2007,4(25):21-30.7夏先波编著.Java JDK实例宝典M.北京:电子工业出版社8林胜利,王坤茹.Java优化编程M.北京:电子工业出版社