基于Android系统的音乐播放器设计与实现.docx
- 文档编号:7908170
- 上传时间:2023-01-27
- 格式:DOCX
- 页数:26
- 大小:588.15KB
基于Android系统的音乐播放器设计与实现.docx
《基于Android系统的音乐播放器设计与实现.docx》由会员分享,可在线阅读,更多相关《基于Android系统的音乐播放器设计与实现.docx(26页珍藏版)》请在冰豆网上搜索。
基于Android系统的音乐播放器设计与实现
本科毕业设计(论文)
题目:
基于Android系统的音乐播放器设计与实现
院系:
计算机科学系
专业:
计算机科学与技术
姓名:
学号:
指导教师:
教师职称:
填写日期:
2012年月日
摘要
当今社会的生活节奏越来越快,随着硬件移动设备的越来越先进,人们对移动设备的要求也越来越高,从以前的追求技术到现在的追求视觉效果及用户体验,因此,也逐步的提高了对系统的要求。
本文主要是在Android系统上对音乐播放器应用程序的设计与实现进行讨论,通过这一过程来进一步学习与应用Android平台,这样对个人的未来发展也很有意义。
本论文的音乐播放器采用了Android开源系统技术,利用Java语言和Eclipse开发工具对播放器代码进行编写。
同时给出了详细的系统设计过程、部分界面截图及主要的功能流程图,本文还对开发过程中遇到的问题和解决方法进行了详细的讨论,该音乐播放器集下载、播放、暂停、停止等功能于一体,性能良好,在Android系统中能独立运行。
MP3是一种声音文件的压缩格式,由于本播放器只限于应用层程序的探讨,所以对具体的压缩算法不做深究。
实验证明,基于Android平台的软件开发简单,使用方便简洁,必将成为未来几年的发展方向,具有普遍意义。
关键词:
:
Android,音乐播放器,MP3
Abstract
Today'sincreasinglyfastpaceoflifeinsociety,withthehardwareofmobiledevicesbecomeincreasinglysophisticated,peopledemandmoreandmoremobiledevices,hightechnologyfromthepasttothepresentpursuitofthepursuitofvisualanduserexperience,therefore,alsograduallyincreasedthesystemrequirements.ThisarticleisintheAndroidsystem,musicplayerapplicationonthedesignandimplementationtodiscusstheprocessthroughwhichtofurtherstudyandapplicationofAndroid,sothefuturedevelopmentofpersonalsense.
MusicplayerofthispaperusesAndroidopen-sourcesystemtechnology,theuseofJavalanguageandEclipsedevelopmenttoolsforthepreparationoftheplayercode.Atthesametimegivesadetailedsystemdesignprocess,someinterfacescreenshotsandthemajorfunctionofflow,thepaperalsoencounteredintheprocessofdevelopmentproblemsandsolutionswerediscussedindetail,themusicplayer,setdownload,play,pause,stopandotherfunctions,goodperformance,intheAndroidsystemcanrunindependently.MP3isacompressedaudiofileformat,astheplayerislimitedtotheapplicationlayeroftheprogram,sonottogointothespecificcompressionalgorithm.
Experimentsshowthat,basedontheAndroidplatform,softwaredevelopmentissimple,conciseandeasytouse,willbecomethedevelopmentdirectionofthenextfewyears,haveuniversalsignificance.
Keywords:
Android,musicplayer,MP3
第一章引言
1.1项目背景
自2007年Google公司推出Android以来,一直受到人们的热捧。
Android是基于Linux内核的软件平台和操作系统,它包括移动电话工作所需的全部软件,而且不存在任何以往羁绊移动产业创新的专有权障碍,并迅速发展成为智能移动终端的操作系统。
由于手机市场发展迅速,使得手机操作系统也出现了不同种类,现在的市场上主要有三个手机操作系统,Windowsmobile,symbian,以及谷歌的Android操作系统,其中占有开源代码优势的Android系统有最大的发展前景。
Android的开放性就优于其它封闭式的手机系统,因此,任何人都可以根据自己的爱好将手机系统中的所有功能重新编写。
这使得越来越多的人关注这个操作系统。
计算机应用越来越广泛,手机市场也日新月异,各种音频、视频资源在网上广为流传,这些资源看似平凡,但是已经成为了人们生活中不可缺少的一部分了,于是各种手机播放器也紧跟着发展起来,但是很多播放器都是一味追求外观花哨,功能庞大,对用户的手机造成了很多资源浪费,在用户需要多任务操作时,受到不少影响,带来了许多不便。
那么能否在手机上拥有自己编写的个性音乐播放器呢?
谷歌的Android系统就能做到。
本文的音乐播放器就是基于谷歌Android手机平台的播放器。
要研究了各种市场上流行的手机播放器,了解它们各自的插件及编码方式,还有各种播放器播放的特别文件格式,分析各种编码方式的优缺点,以及各种播放器本身的缺点和特点,编写出功能实用,使用方便快捷的播放器。
1.2编写目的
现今社会生活紧张,而欣赏音乐是其中最好的舒缓压力的方式之一,本项目的目的是开发一个可以播放MP3文件格式的播放器,并且可以从服务器下载歌曲,控制播放,暂停,停止,音量调节,播放列表和歌曲文件的管理操作等多种播放控制功能,界面简明,操作简单。
本项目是一款基于Android手机平台的音乐播放器,使Android手机拥有个性的多媒体播放器,使手机显得更加生动灵活化,与人们更为接近,让手机主人随时随地处于音乐旋律之中。
使人们的生活更加多样化,也使设计者更加熟悉基于Android平台的应用布局及开发模式的特点,为以后实现更复杂的应用打好基础。
第二章Android应用软件开发基础
2.1Android简介
Android是一种以Linux为基础的开放源码操作系统,主要使用于便携设备。
目前尚未有统一中文名称,中国大陆地区较多人使用“安卓”或“安致”。
Android操作系统最初由AndyRubin开发,最初主要支持手机。
2005年由Google收购注资,并组建开放手机联盟开发改良,逐渐扩展到平板电脑及其他领域上。
Android平台五大优势特色:
1、开放性
2、挣脱运营商的束缚
3、丰富的硬件选择
4、不受任何限制的开发商
5、无缝结合的Google应用
图2-1Android软件体系结构图
Android作为一个移动设备的平台,其软件层次结构包括了一个操作系统(OS),中间件(MiddleWare)和应用程序(Application)。
根据Android的软件框图,其软件层次结构自下而上分为以下几个层次:
第一、操作系统层(OS)
第二、各种库(Libraries)和Android运行环境(RunTime)
第三、应用程序框架(ApplicationFramework)
第四、应用程序(Application)
2.2Android应用软件开发的核心技术
2.2.1Android应用开发语言
Java是Android上的主流开发语言,各种支持也最完善。
Android发布的API和SDK也都主要是面向Java开发人员的。
我们的播放器实例也是用Java开发的。
2.2.2Android应用程序组件
Android应用程序最大的一个特点就是每个应用都由若干组件构成。
而且各个应用程序的组件还可以相互调用(需要在代码中设置相应权限)。
例如假设我们需要编写一个内嵌有网页的程序,那么我们无需亲自编写浏览器,而是可以直接调用系统自带的ChromeLite浏览器组件。
又如假设我们编写了两个应用程序,其中一个程序中有列表显示图片的组件,那么我们在另外一个应用程序中就可以使用该组件,而不需要再编写该功能。
也就是说,不同于我们平常编写的程序,Android的应用程序不是单一入口,而是可以从代码的不同位置启动。
这就要依靠组件来实现。
Android应用程序的组件有以下四种:
1.Activity
一个activity实际上表现出来的就是一个程序的界面。
这个界面可能有许多种不同的形式,比如有列表形式,有文字形式,有图像格子等形式。
一个应用程序也可能有不止一个activity。
比如一个短消息的程序,需要有列表显示所有消息的activity,还至少需要一个编辑短消息的activity(界面),还可能需要设置、菜单等界面。
每个activity都有一个默认的窗口用于绘制界面,一般情况下,它是充满全屏的,但是我们可以通过程序控制它,使其小于屏幕大小,也可以控制其浮动于其它窗口之上(如Android中的Toast信息),
Activity中显示出来的内容其实是由view堆叠形成的,view是由View基类派生出来的各种形式的界面元素,如ListView,GridView等等,通过组合这些view,就形成了一个可见的activity。
我们可以用Activity.setContentView()方法来设置一个activity中所要显示的view。
2.Service
service是一种没有界面的组件,同我们平常在Windows或Linux系统中所理解的“服务”一样,Android上的service也是运行在后台的,运行时间可以从系统启动到系统关闭为止。
对于许多应用程序来说,service组件是至关重要的。
以下载管理器为例,用户肯定希望能够在切换到其它程序时仍然在后台进行下载,这就需要用到service完成下载工作。
而显示下载进度、已下载文件等信息则由activity完成,同时我们还希望能控制下载过程,如停止、继续等,这就需要activity与service之间进行通信。
Android允许activity连接到或者绑定到service上,这样就可以让用户在界面上控制后台service的行为。
3.Broadcastreceiver
Broadcast意为广播消息,Android系统自身会发出许多广播消息,如电量不足,用户修改了全局设置等,各个应用程序也以向整个系统广播消息,如文件下载完毕等。
Broadcastreceiver则是程序中专门用来接收广播消息的组件,它没有界面显示,只负责监听、接收广播消息,然后根据程序逻辑,启动其它组件去处理广播消息。
它可以启动一个activity来同用户交互,也可以使用NotificationManager向用户发出通知。
NitificationManager的通知形式有许多种,比如说振动、响铃、闪LED灯,还可以在Android界面的消息栏处显示信息。
4.Contentprovider
contentprovider是一种为其它应用程序提供数据的组件。
这些数据可以保存在文件中,也可以保存在SQLite数据库中,还可以以其它任何有效的方式保存。
ContentProvider类为我们提供了一系列保存数据的方法供我们调用,可以很方便地存储数据。
其它应用程序在需要使用这些数据时,可以用ContentResolver对象,使用其中的方法。
ContentResolver可以与任何contentprovider交互,获取其中的数据。
只要需要某个组件,Android就会尽力保证它的可用:
如果该组件还没启动,就启动它,如果该组件所属的应用程序还没拥有一个进程,则为它启动一个进程,如果系统资源不足以容纳一个新的进程,则将后台的某个进程杀死为新进程腾出资源。
2.2.3Intent介绍
所谓Intent,就是一种运行时的绑定机制在应用程序运行时连接两个不同的组件。
一般的应用是通过Intent向Android系统发出某种请求,然后Android系统会根据请求查询各个组件声明的IntentFilter,找到需要的组件并运行它。
前面介绍的Activity、Service及BroadcastReceiver组件之间的通信全部使用的是Intent,但是各个组件使用的Intent机制不同。
2.2.4AndroidManifest.xml文件
AndroidManifest.xml是每一个应用都需要的文件,位于应用根目录下,它描述了程序包的全局变量,包括暴露的应用组件(activities,services等等)和为每个组件的实现类,什么样的数据可以操作,以及在什么地方运行。
AndroidManifest.xml文件是一个结构化的XML文件,它除了包含有各个组件的信息,还包括许多其它的信息,它的基本样式如下所示:
xmlversion="1.0"encoding="utf-8"?
>
name="com.example.project.FreneticActivity" android: icon="@drawable/small_pic.png" android: label="@string/freneticLabel" ...> ... 不难看出,name,icon,lable这些属性就分别指activity的名称、图标、标识。 我们通过manifest描述程序的信息,Android系统就能读取出来并产生相应的行为。 第三章搭建Android开发环境 3.1计算机配置 开发Android应用所用到的开发工具较占内存,尤其是模拟器。 官方并未给出最低配置要求,根据个人实际体会,在本人IntelCorei7-2630QM四核处理器及8G内存的情况,能流畅使用。 另外还需有600MB以上的剩余磁盘空间(官方文档中的说明)。 3.2安装JDK 由于Android开发是基于Java的基础上的,所以我们必须得安装JDK(JDK下载地址: 1.右击计算机---属性---高级系统设置---高级---环境变量,新建“系统变量”,设置变量名: “java_home”。 变量值: “C: \ProgramFiles\Java\jdk1.7.0_02”(视个人安装路径而定)。 2.找到变量名为path的项,双击,在变量值后面添加: “;%JAVA_HOME%\bin;”, 3.新建“系统变量”变量名: “classpath”,变量值: “.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;”配置完成后,重启可以在cmd下输入java或者javac测试。 3.3安装Eclipse Eclipse是我们以后在Android开发时使用的开发平台,它集成了很多功能以及插件,在开发的过程中便于我们使用,在官网(http: //www.eclipse.org/downloads/)可以下载到对应系统以及功能的安装包,在安装提示安装完成后并且完成了JDK的安装后即可正常使用。 3.4安装SDK SDK(SoftwareDevelopmentKit)初始包中有开发Android程序所要用到的工具,它包括了从编译到运行Android应用程序所需要的各种工具。 安装时可以根据自己的需求选择安装相应的版本。 (SDK下载地址: 3.5安装ADT 按照2.3.4安装完SDK初始包后,就可以开始开发Android应用程序了,但是为了更高效地进行开发,Android团队推出了AndroidDevelopmentTools(ADT)。 ADT是目前开发Android应用最有效的工具,它是一个Eclipse插件,支持Eclipse3.4及3.4以上的版本。 以Eclipse3.5(Galileo)为例,安装过程如下: 1.打开Eclipse,选择Help>InstallNewSoftare。 2.在AvailableSoftware对话框中,点击Add...。 3.在弹出的AddSite对话框中,任意填写一个名字到Name一栏。 在Location一栏,则填入这一URL: “https: //dl- 4.返回到AvailableSoftware窗口后,就能看到列表中出现了"DeveloperTools",选中它前面的复选框,再点击“Next”,就会开始下载安装ADT的各种组件了。 5.安装完毕后将弹出窗口显示ADT相关的各种信息以及许可协议,点击“Finish“即可完成安装。 6.重新启动Eclipse。 3.6设置Eclipse 1.选择"Window>Preferences..."打开偏好设置 2.从左侧边栏中选择"Android"一栏。 3.单击SDKLocation一栏边的Browse按钮,选择刚刚下载的SDK保存的路径。 4.点击Apply,OK,设置生效。 至此,Android的开发环境就已经搭建完毕,可以使用了。 3.7创建AVD 在安装好JDK,Eclipse,SDK,ADK之后我们就可以进行Android项目开发了,但是在开发的过程中我们经常需要运行、调试我们所开发的软件,这就需要用到AVD(AndroidVirtualDevice),也就是Android虚拟机。 1.打开Eclipse。 2.点击OpenstheAndroidVirtualDeviceManager图标按钮。 3.在弹出的窗口中点击New新建一个Android虚拟机。 4.在弹出的新建虚拟机窗口中Name一栏填上虚拟机的名称(一般与虚拟机的版本号相同,便于区分)。 5.在Target一栏选择一个Android虚拟机版本(如Android2.2或Android2.1)。 6.在SDCard下的Size一栏填上我们要设定的SD卡容量大小。 7.点击CreateAVD,这样我们的一个Android虚拟机就创建好了。 第四章系统需求分析 4.1功能需求分析 根据项目的目标,我们可获得项目系统的基本需求,一下从不同角度来描述系统的需求,并且使用用例图来描述,系统的功能需求,播放器的基本控制需求。 以下分别描述: 4.1.1播放器的基本功能 图4-1播放器基本控制图 在播放器运行时,主界面是服务器的歌曲列表,可以点击刷新列表,也可以点击歌曲名,开始下载歌曲,然后点击本地歌曲列表可以显示出本地的歌曲文件,点击文件名则跳转到播放界面,在播放界面可以控制歌曲的播放、暂停、停止以及返回本地歌曲列表。 4.1.2功能需求时序分析 图4-2音乐播放器的时序图 从以上时序图可以看到播放器中消息发送及调用过程。 4.2系统结构流程图 图4-3音乐播放器系统流程图 以上显示了播放器的各个流程。 4.3系统界面需求 播放器界面要求布局合理,简约,颜色舒适,控制按钮友好,能让用户一眼就能看出各个按钮的作用及操作方法。 能实现要求的功能,但又不重复。 要考虑到不同手机屏幕大小可能不一样,应尽量兼容大多数手机屏幕尺寸,使之显示无障碍。 4.4开发环境 操作系统: Windows7x64。 开发环境: EclipseVersion: IndigoServiceRelease1 ADTVersion: 16.0.1 运行环境: Android2.2 第五章音乐播放器详细设计与实现 5.1播放器界面设计 首先是创建一个主界面MainActivity,它使用TabHost布局,这里面的TabWidget控件控制着两个Activity的互相切换: 一个是Mp3PlayerListActivity(图5-1),这个Activity是一打开程序就显示的服务器歌曲列表。 图5-1Mp3PlayerListActivity 另一个是LocalActivity(图5-2),这个Activity是点击TabWidget控件中的“本地”按钮才会显示的本地歌曲列表界面。 图5-2LocalActivity 在LocalActivity中点击列表中的歌曲名就会调出PlayerActivity(图5-3),这个Activity就是播放音乐时的界面,其中有一些对播放器进行控制的控件。 图5-3PlayerActivity 详细设计代码见附录。 5.2获取并解析XML文件 因为打开播放器首先就要刷新服务器上的歌曲列表,那么我们就得获取服务器上的歌曲列表文件,即XML文件。 实现代码如下: //根据URL下载文本文件,必须是文本文件,因为返回值是文本中的字符 publicStringdownload(StringurlStr){ StringBuildersb=newStringBuilder(); Stringline=null; BufferedReaderbuffer=null; try{ //创建一个URL对象 URLurl=newURL(urlStr); //创建一个http连接 HttpURLConnectionurlConn=(HttpURLConnection)url .openConnection(); //使用io读取数据 buffer=newBufferedReader(newInputStreamReader( urlConn.getInputStream())); //一行行的读取数据 while((line=buffer.readLine())! =null){
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 Android 系统 音乐 播放 设计 实现