基于Android的Mp3播放器毕业设计.docx
《基于Android的Mp3播放器毕业设计.docx》由会员分享,可在线阅读,更多相关《基于Android的Mp3播放器毕业设计.docx(21页珍藏版)》请在冰豆网上搜索。
![基于Android的Mp3播放器毕业设计.docx](https://file1.bdocx.com/fileroot1/2023-2/3/be57cd34-e3e3-467e-a61d-90bb3d64bf5f/be57cd34-e3e3-467e-a61d-90bb3d64bf5f1.gif)
基于Android的Mp3播放器毕业设计
摘要
由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
目录
1绪论1
1.1课题背景1
1.2Android的介绍1
1.3Android开发环境的搭建2
1.4AndroidSDK1.6的模拟器的介绍5
2系统的总体设计概要6
2.1总体功能架构6
2.2功能流程图7
3详细设计与实现8
3.1Android程序设计的一般方法8
3.2MP3播放器的模块设计8
3.2.1编码规范8
3.2.2界面的搭建8
3.2.3播放模块11
4测试与分析14
4.1软件测试准备工作14
4.2系统测试内容概要14
4.2.1列表的更新测试14
4.2.2各种格式的歌曲的详情查看测试14
4.2.3测试音乐播放器主页面的显示以及一些主要操作14
4.2.4测试音乐播放器的其他一些基本操作15
5.结束语16
6.参考文献17
1绪论
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_14
B:
修改环境变量,变量名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”->“Install New Software”,点击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中变量的定义方式定义。
首字母小写,驼峰命名法。
例如:
用户名:
最后类名与变量的定义,定义与用户交互的类,××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的名字和大小;在播放界面中会显示歌曲的名字和歌唱者的名字;
publicListgetMp3Files(Stringpath){
Listmp3Infos=newArrayList();
Filefile=newFile(SDCardRoot);
File[]files=file.listFiles();
读取目录中的mp3的名字和大小;
privateSeekBaraudioVolume=null;
定义了音量的大小;在界面中用户可以调节音量的大小,如果音量调节为0就会变成静音模式;
mNextbtn.setOnClickListener(newImageButton.OnClickListener(){
@Override
publicvoidonClick(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信息的MP3
2、其他格式歌曲的详情查看测试
3、以上的测试中,注意详情中包含的各项内容的正确性,注意内容超长情况下的显示
4.2.3测试音乐播放器主页面的显示以及一些主要操作
1、无歌曲情况下的界面显示
2、有歌曲无歌词且歌曲名超长的情况下(播放前、播放中、暂停情况)
3、有歌曲有歌词的情况下(播放前、播放中、暂停情况)
4.2.4测试音乐播放器的其他一些基本操作
1、调节音量的测试
2、对支持的音乐格式,进行快进、快退测试
3、用左右方向键进行切换歌曲的测试
4、用左右方向键进行切换歌曲的测试
5、测试过程中,关注主页面的显示变化及播放效果
5.结束语
在本次毕业设计中,我能按时完成老师布置的课题任务,从对课题的相关资料的整理,然后对Android开发平台的学习,对Android绘图技术的学习,提高了分析和处理问题的本领,学习了论文的写作方法和步骤。
通过本次毕业设计,对Android有了一定的认识,对Android的四大组件Activity,Service,Broadcast,ContentProvider也掌握了很多,以及SQLlite数据库也接触了一些,这样以后再设计有关Android的软件就会得心应手,效率也会高很多。
除了学会各个控件的使用外,还学会底层的处理,明白Android系统结构,学会编译系统环境等。
把Android学习好,以后工作也许会用到Android,现在就是一个学习的好机会,努力学好,掌握Android知识。
我把这次毕业设计当作是我踏入社会前的一次实践,了