《基于android的音乐播放器的设计-毕业论文.docx》由会员分享,可在线阅读,更多相关《基于android的音乐播放器的设计-毕业论文.docx(42页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 基于android的音乐播放器的设计摘 要当今社会发展越来越快,人们对手机软件设备的用户体验要求越来越高,本文主要是对Android系统上对音乐播放器应用程序的设计与实现进行讨论,通过这一过程的设计和论证对手机平台播放器以后的研发有很大意义。本文的音乐播放器使用开源的Android平台,使用Java语言和开发工具Eclipse对音乐播放器代码进行编写。通过设计能够实现音乐的播放、暂停、上一曲、下一曲、音乐列表、声音控制、退出菜单、播放模式等功能,通过对基于Android平台下的播放器的设计,了解音乐播放器的设计原理和实现的相关技术,掌握Android编程思想以及基本的应用组件,对以后从事An
2、droid开发有很大的帮助。研究表明,基于Android平台的应用软件开发快捷简单,用户体验良好,必将成为未来移动互联网时代的风向标。关键词:安卓;音乐播放器;应用程序 38AbstractTodays society is developing faster and faster, people software for mobile devices are increasingly demanding the user experience, this article is mainly on music player applications on the Android system
3、design and implementation are discussed, through the design and demonstration of this process on the mobile platform player development has great significance in the future. This music player uses the open source Android platform using the Java language and the Eclipse tools for writing music player
4、 code. The design can realize the music play, pause, a song, the next song, music, sound control, exit the menu, playback and other functions, on the basis of design under the platform of Android player based on the design principle, understand the music player and related technology, master Android
5、 programming ideas and the application of the basic components, after the Android engaged in the development of great help in the future. Research shows that based on the Android platform application development quick and easy, the user experience is good, will become the future mobile Internet era
6、of the citizenry.Key words: Android;music player;application目 录摘 要IAbstractII第1章 绪论11.1 选题依据、研究的目的及意义11.2 国内外的研究现状1第2章 Android开发基础32.1 什么是Android32.1.1 Android简介32.1.2 Android的基本框架32.2 Android开发环境的搭建52.3 Android系统的四大组件72.4 Android音乐播放器工程82.4.1 Android项目82.4.2 Android工程文件结构92.4.3 AndroidManifest.xml文
7、件10第3章 系统需求分析133.1 系统功能需求133.1.1 播放器基本控制需求133.1.2 播放友好性需求153.2 系统结构图和流程图163.3 系统其他需求183.3.1 音乐模块需求183.3.2 艺术家模块需求183.3.3 专辑模块需求183.3.4 最近播放模块需求193.3.5 系统性能需求193.3.6 运行环境需求19第4章 详细设计及功能实现204.1 播放器界面的设计204.2 播放动画的设计214.3 各模块详细设计224.3.1 声音控制模块224.3.2 播放暂停模块234.3.3 上一曲下一曲模块244.3.4 初曲终曲模块254.3.5 音乐列表模块26
8、4.3.6 艺术家模块274.3.7 专辑模块284.3.8 最近播放模块294.3.9 系统菜单模块30第5章 软件测试325.1 软件的测试325.1.1 软件的测试环境325.1.2 测试阶段325.2 测试结果34结论35参考文献36致谢38第1章 绪论1.1 选题依据、研究的目的及意义Android播放器是近几年来智能手机当中比较流行的音乐播放软件。利用以前学习过的各种编程知识来设计和开发一款基于Android平台的音乐播放器,还能深入学习Android的程序框架结构,从而进一步学习Android的基础知识和理论,了解手机软件的开发流程,掌握Android应用程序的开发技巧,充实自己
9、的世界观价值观。Android平台是一个完全开放的手机平台,智能手机中的各种应用软件也越来越完备。智能手机操作系统的研究和它的发展已成为当前最活跃的领域1。在Android平台设计和开发一款音乐播放器可以摆脱不能随意安装在非智能手机的因素,并且具有很广阔的应用前景。当前音乐播放器由于手机内存和cpu处理能力的限制,在音乐播放、收集、推荐、操作和管理存在技术瓶颈,下一代音乐播放器应该使用云空间,记录用户的使用习惯,将音乐的播放,搜索等功能全部交给云端来处理,这样网络为用户提供互联网资源更庞大,还可以定制服务,管理也更加简单。而近年来出现用户体验良好的Android智能手机系统恰好能作为下一代播放
10、器平台。只有音乐播放器客户端软件的不断创新发展,未来人们欣赏音乐的用户体验才会更好。所以开发一款好的音乐播放器在现在和未来都具很大的实用价值。1.2 国内外的研究现状随着科技的快速发展,数码电子设备基本上都含有MP3播放的功能。媒体播放器的发展有两个趋势。首先,支持多样化格式,如常见的音频格式WMA格式、MP3格式、MIDI格式等。这些格式如何能够完美的播放,是现如今研究的一个主流方向。其次一个必要的趋势就是播放器的可扩展性,现如今音乐播放器的功能越来越多,用户体验越来越好,如何能让播放器的功能比现有的更加完备,也是占领用户群的一个因素。由于Android基于Linux内核且具有开源、免费的特
11、性,为播放性能的提升提供了更加便利的条件2。Android平台的开放性,可以不仅推动了技术创新(包括平台本身),也有利于降低开发成本,让制造商定制的特点产品很容易。因此,它有一个大的市场潜力3。目前Android开发在国内外主要都是开发应用,分成3类:为大客户开发App、开发通用App(放到安卓市场或者其他App市场下载销售)以及游戏开发(同样放到安卓市场或者其他App市场销售,目前从事游戏开发的人员也是占比例最大的)。第一类开发者一般是比较专业的大公司,这些公司主要为大客户设计定制App以及提供其所需要的总体解决方案。他们除了会根据需求对系统进行定制外,更多的工作在于为这些系统编写定制的应用
12、。第二类开发者,一般是创业型公司或者是个人开发者,他们的盈利方式一般是2种:为国外客户做外包软件开发或者通过Google的移动广告(AdMob),用户点击广告分成。而在理论上的通过付费下载的方式来盈利的,现在国内少有成功者。第三类开发者目前和第二类开发者类似。第2章 Android开发基础2.1 什么是Android2.1.1 Android简介Android一词的本义指“机器人”,同时也是Google于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称4。该平台由中间件、操作系统、应用软件和用户界面组成,是首个为移动终端打造的真正开放和完整的软件平台和操作系统5。目前最新A
13、ndroid系统版本为Android 4.1,有代表性的手机是三星的galaxy note。Android是基于Linux内核的软件平台和操作系统,早期由谷歌公司研发(在华注册商标名为“安致”),后由开放手机联盟(Open Handset Alliance)开发。Android采用了软件堆层的架构,由三个部分组成。底层以Linux为操作系统内核,提供进程管理、存储管理等基本功能6。其他各公司自行开发市场需求的应用软件,部分程序以java编写。为了使这项技术得到推广,2007年11月,Google正式发布Android操作系统并联合34家厂商成立了“开放手机联盟”7。Android在未公布之前常
14、被传闻为谷歌电话。业内大多数认为Google开发的是自有手机品牌产品,而不是一套开源的软件平台。到了2010年1月,Google才发表了自有手机品牌电话Nexus One。2011年10月,Android市场占有率超过48%,成为全球最受欢迎、用户交互体验较好、占有率最高的智能手机平台。Android手机软件平台为AndroidMarket,为用户提供下载和安装支持Android的第三方软件8。截止到2010年4月15日,AndroidMarket已经有3.8万多个应用程序9。现在这个移动互联网时代,Android系统在智能手机和平板电脑市场均处于霸主地位。采用Android系统主要厂商包括H
15、TC、SAMSUNG、LG、魅族、华为、中兴、联想、小米等。目前最新SDK版本为Android 4.2.2。2.1.2 Android的基本框架Android的基本框架由五个部分组成,应用层、应用框架层、类库、Android运行时环境和Linux内核。我们程序开发人员只可以访问应用层和应用框架层,使用开发所需Library库。下图就是Android基本框架图(图2-1):图2-1 Android基本框架(1) ApplicationsApplication Android会与一个核心应用的程序包一起发布,此应用程序包会包括SMS短消息程序,email客户端,地图,浏览器,联系人管理,日历程序等
16、10。使用JAVA语言编写的核心应用程序11。(2) Application FrameWork 允许开发人员完全访问核心应用程序所使用的API框架12。此应用程序架构用来简化组件的重用;在遵循系统安全性的要求下任何应用程序都可以发布和使用的它的功能块。此应用程序的重用机制使得组建可以被用户替换。所有的应用程序都由一系列的服务和系统组成,包括:可扩展的视图(Views )、内容管理器(Content Providers )、资源管理器(Resource Manager)、通知管理器(Notification Manager)、活动类管理器(Activity Manager)。(3) Libra
17、ries库Android 包含了一套C/C+ 函数库13。该库通过 Android 的Application FrameWork为开发人员提供所需的底层服务。以下是一些核心Libraries库:系统 C库-就是系统C函数库(libc),为基于embedded linux的设备专门定制,也是从BSD继承而来的。媒体库- 基于 PacketVideoOpenCore,这个库支持录和放,可以录制大多数比较流行的音频与视频格式,还有静态映像文件包括MP3, MPEG4, AAC, H.264, AMR, JPG, PNG。Surface Manager 管理所显示子系统,并且为多个应用程序提供2D图层
18、和3D图层的无缝融合。LibWebCore - 一个最新用来支持Android浏览器和一个可嵌入web视图的web浏览器引擎。SGL - 一个内置的支持2D图形的引擎。3D libraries - 该库可以使用高度优化的3D软加速或者使用硬件3D加速。FreeType 位图和矢量字体显示14。SQLite 功能强劲的安卓用轻量级关系型数据库,所有应用程序均可使用。(4) Android RuntimeAndroid 包括了一个核心的Library,该库提供了编程中Java所封装的大多数类和方法。每一个Android应用程序都在它自己独立的线程中运行,都拥有一个相对独立的Dalvik虚拟机实例1
19、5。Dalvik是同时针对于多个高效运行的VMs来实现的。Dalvik虚拟机执行.dex的可执行文件,这一格式文件对最小内存的使用做出了较好的优化。该Dalvik虚拟机是基于寄存器的,所有的类都需要经过JAVA编译,然后通过Android SDK中的dx工具转化成.dex格式再由虚拟机执行。 (5) Linux内核Android 的核心系统服务依赖于 Linux 2.6内核,如安全性,网络协议栈,内存管理,驱动模型和进程管理16。 Linux 内核也同时作为硬件和软件堆栈之间的硬件抽象层。同所有Linux内核一样,Android内核是介于硬件层和软件组之间的一个抽象层次17。2.2 Andro
20、id开发环境的搭建在软件开发中,大部分的软件都需要配置开发环境才能够使用,Android开发也不例外。下面介绍Android的开发环境配置:搭建开发环境需要的软件:1.操作系统:Windows XP或Linux2.软件包:Android SDK(Software Development kit Java Development kit) 、ADT(Android Develoopment Tool)183.IDE环境:IDE Eclipse +ADT Eclipse4.JDK:Java Runtime Environment、Java Development kit19安装步骤如下:第一步:安
21、装Java虚拟机sun-java6-jdk版本,正常安装即可,完成后需要配置环境变量。第二步:安装Eclipse工具 官网http:/www.eclipse.org/downloads/选择版本(图2-2):进行安装图2-2 Eclipse安装包下载第三步:安装安卓的SDK包:首先在安卓开发者的官网下载SDK,具体下载地如下 ,选择自己的系统进行下载安装图2-3 SDK包下载界面第四步:安装Android ADT插件打开Eclipse,点击help,然后点击install new software ,再点击add,然后会弹出一个框如下图所示(图2-4)图2-4 ADT插件安装界面选择浏览你下载
22、的ADT插件的包,点击OK按钮,选择需要安装的包,占击next按钮,然后选择接受协议,等到安装成功以后重启Eclipse工具,再设置Android SDK 环境,点击Window然后Preferences,再选择点击Android,如下所示(图2-5)图2-5 配置开发环境在SDK location中输入SDK Tools路径:E:android_sdk点击OK这样Android环境就已经搭建成功了。2.3 Android系统的四大组件在Android系统中,提供了四大基本组件,每个组件都是一个视图,分为可见和不可见视图,我们常见的Activity,ContentProvider在应用程序中是
23、能用肉眼看见的,而Service和BroadcastReceiver通常则是在后台运行的。下面来详细介绍下四大组件:(1)Activity 简介在Android系统中Activity提供可视化的用户界面,一个Android应用通常由多个Activity组成。多个Activity组成了Activity栈(Stack),当前活动的Activity处于栈顶。Activity有自己的生命周期,由Android系统来控制。(2)Service 简介Service其实就是在后台运行的一种服务程序,用户一般不需要与其接触,所以这样的一个Service类其实是比较简单的,我们自己所写的service方法只要继
24、承Service类,实现所需要的方法就可以了。写好的Service需要在AndroidManifest.xml文件中注册,就是通过声明才能使用。Service有自己的生命周期,我们可以调用startService()启动一个Service或者bindService()方法来绑定一个存在的Service。 (3)Broadcast Receiver 简介Broadcast Receiver 字面是广播接收器的意思,它类似于事件处理机制,不过事件处理机制是程序组件级别的,而广播事件处理机制是系统级别的。我们可以使用Intent来启动一个程序组件,还可以通过使用sendBroadcast()方法来发
25、起一个系统级别的事件广播来传递消息。我们可以在应用程序中实现Broadcast Receiver来监听和响应这些广播的Intent。(4)ContentProvider简介Content Provider 的应用使应用程序之间相互访问数据成为可能,目前它被用来保存和检索数据,也成为了Android系统提供的第三方应用数据的访问方案。它是跨应用程序共享数据的唯一方法。Android 系统为常用的音视频、图片和文件等提供了大量的Content Provider。它们在android.jar包的android.provider下面。当我们有适当的权限的时候,通过这些定义好的ContentProvid
26、er 可以极其方便的进行数据操作。我们也可以自己来制定ContentProvider用来共享我们的数据,以方便用户的访问。2.4 Android音乐播放器工程2.4.1 Android项目Android的四大基本组件:Activity(活动),Service(服务),BroadcastReceiver(广播接受者),ContentProvider(内容提供者)20。各组件之间要进行切换需要一个Intent类,通过启动StartIntent()方法来使各组件进行跳转。Android的五大布局方式:LinearLayout(线性布局)、 FrameLayout(帧布局)、 TableLayout(
27、表格布局)、AbsoluteLayout(绝对布局)、RelativeLayout(相对布局)。这五种布局方式一般都是需要相互嵌套使用的,各种漂亮的Android界面就是通过嵌套布局才能够实现的,但是这一般都需要一定的Android布局功底。Android的线程,以及线程之间通信的中介:Handler类。Android配置文件:AndroidManifest.Xml及res资源文件中各种属性、布局方式 、引用的资源等。图2-6 音乐播放界面2.4.2 Android工程文件结构Android工程基本结构目录包括:src (源代码)、gen(Android系统自动生成的常量)、Res(资源文件)
28、:主要存放程序界面的布局配置(.xml)文件和图片资源。AndroidMainfes.xml 是四大组件能够正常存在的根本,只有在它协调下,Android程序的四大组件才可以正常的跳转。Android资源的类型和布局(图2-7)图2-7 资源类型分布图下图2-8 -图2-12为音乐播放器的工程结构、源码结构和资源文件等,图2-8为一个Android工程的整体工程结构,图2-9为该播放器的代码源文件,图2-10为播放器所用到的字符串的xml配置文件,图2-11为 该播放器的各种界面的布局配置文件,图2-12为该播放器的图片资源。图2-8图2-12 音乐播放器工程分析图2.4.3 AndroidM
29、anifest.xml文件AndroidManifest.xml文件用来启动所有的Android应用程序,当我们一个新建的工程,都会自动生成一个名叫AndroidManifest.xml的文件,这一配置文件是整个程序能够正常运行的核心,其重要性不言而喻,它里面明确声明了Android SDK的最低需求版本minSdkVersion,程序运行时使用的Activity都需要在这里注册声明,当程序中任何一个操作触发事件后,系统都会自动的去AndroidManifest.xml中寻找对应的标识来启动相应的操作。任何一个AndroidManifest.Xml文件的格式都应为: Android系统默认支持
30、的编码方式是utf-8,当程序显示出现乱码时,我们必须将其编码方式转化为utf-8.在 AndroidManifest.xml中会在第一行声明一句:。它是该系统支持的版本和编码。在第二行定义了我们需要使用的架构,该架构来自:xmlns:android=xmlns(XML namespace)是一个命名空间,它就如同一个引导者,带领我们找到系统框架,然后找到这个架构,每一个配置文件必须要由xmlns引导,否则我们想引用的资源就会无法使用。在application元素我们定义android:icon=drawable/music和android:label=string/app_name,icon
31、是程序安装后在手机中显示的图标,我们运用drawable/music表示了对res/drawable目录下的music.png的引用。string/app_name表示了对res/value目录下string.xml中定义的app_name对应值的引用,在string.xml定义键值对的方式易于以后的修改。 这是系统确定的首先要启动的Activity是MainActivity。在intent-filter选项中,有action和category属性,按照要求action的值为android.intent.action.MAIN,category的值为android.intent.categor
32、y.LAUNCHER,它们是系统的值,程序启动的时候解析到这些常用值就可以确定首先要启动的Activity。 在AndroidManifest.Xml中有一个根结点,它是我们需要定义的ADT版本,例如我们将其值设定为android:minSdkVersion=10,则表示此Android工程所用的版本为2.3.3,Android还有1.6、2.1、2.2、4.0、4.1这几个版本。如果我们需要对音频文件进行刻录,那我们就需要设置音频刻录权限,我们就需要将其的值设置为android:name=android.permission.RECORD_AUDIO,我们就可以进行音频刻录了。当然uses-
33、permission还有别的权限,例如GPS定位权限,网络访问权限,后台执行权限等等。当程序的任何一个组件要用到时,都必须在AndroidManifest.xml文件中声明。四大组件要使用前都需要声明,其声明方式如下:其中声明provider时还需要声明其授权 authorities。每个组件里面还有很多的属性,会根据程序的具体需要定义不同的属性。过滤器intent-filter 有两种启动方式来启动界面:(1) 显示方式显示方式是在代码中的直接设置需要启动组件,在intent.setClass(组件1,组件2)中确定从这个组件跳转到另一个组件,然后调用startIntent(intent)来
34、启动指定的组件2。(2) 隐式方式隐式方式是通过过滤器来过滤满足action和category的条件来启动该组件。这些属性是在AndroidManifest.Xml文件中声明的。两种启动方式都可以通过程序setAction(ACTION常量)和startActivity(intent)或配置文件两种方式来实现组件的跳转。第3章 系统需求分析3.1 系统功能需求根据项目的目标,我们可获得项目系统的基本需求,以下从不同角度来描述系统的需求,并且使用用例图来描述,系统的功能需求,我们分成两部分来概括,即播放器的基本控制需要和播放友好性需求。以下分别描述:3.1.1 播放器基本控制需求图3-1 播放器
35、基本控制需求表3-1 播放用例用例名称:播放参与者:用户目标:用户点击播放音乐列表中的歌曲前置条件:播放器正在运行基本事件流:1.用户单击列表中歌曲 2.播放器将播放列表中的点击的歌曲表3-2 暂停用例用例名称:暂停参与者:用户目标:使得用户可以暂停正在播放的歌曲前置条件:歌曲正在播放且未停止和暂停基本事件流:1.用户单击“暂停”按钮 2.播放器将暂停当前的歌曲表3-3 初曲/终曲用例用例名称:初曲/终曲参与者:用户目标:使得用户可以返回音乐列表初曲或终曲前置条件:歌曲正在播放或暂停基本事件流:1.用户单击“初曲或终曲”按钮2.播放器将播放音乐列表中初一曲或终一曲表3-4 上一首/下一首用例用
36、例名称:上一首/下一首参与者:用户目标:使得用户可以点播上一首或下一首音乐前置条件:歌曲正在播放或歌曲暂停中基本事件流:1.用户单击“上一首或下一首”按钮 2.播放器将播放上一首歌曲或下一首歌曲表3-5 音乐列表用例用例名称:音乐列表参与者:用户目标:使得用户可以进入音乐列表前置条件:程序在运行基本事件流:1.用户单击“音乐”分区 2.播放器进入音乐列表3.1.2 播放友好性需求图3-2播放模式设定表3-6 播放模式用例用例名称:播放模式参与者:用户目标:使得程序在播放面板设定播放状态前置条件:程序运行在播放器音乐播放界面中基本事件流:1.用户单击“顺序、单曲、随机”按钮 2.播放器进入选中模
37、式播放状态表3-7 歌词显示用例用例名称:歌词显示参与者:用户目标:使得程序自动读取与歌曲名称相同的歌词前置条件:程序运行在音乐播放界面基本事件流:1.程序自动后台扫描歌词文件3.2 系统结构图和流程图 (1)音乐播放器的系统流程图(图3-3)图3-3 播放器系统流程图(2)系统功能结构图(图3-4)和系统功能表(表3-8)图3-4 系统功能结构图表3-8 软件功能表功能类别子功能子功能音乐列表播放列表菜单退出播放关于音乐列表点击播放-进入播放界面艺术家菜单退出、关于专辑菜单退出、关于最近播放菜单退出、关于播放界面播放播放歌曲-线程启动-时间更新暂停暂停歌曲-线程暂停-时间暂停初曲寻找音乐列表
38、第一首歌曲终曲寻找音乐列表最后一首歌曲上一首寻找当前播放的上一ID歌曲下一首寻找当前播放下一ID歌曲主菜单退出程序程序退出关于版权信息3.3 系统其他需求3.3.1 音乐模块需求在音乐模块中我们需要获取歌曲的名称和音乐的时间长度,获取完成后列表排列。表3-9 音乐列表用例用例名称:音乐列表参与者:用户目标:使得音乐列表显示歌曲名称,右边显示时间长度前置条件:播放器在主界面基本事件流:1.用户单击主界面上音乐模块 2.音乐列表显示以音乐排列的列表3.3.2 艺术家模块需求在艺术家模块中我们需要获取歌曲的名称、艺术家的名字和音乐的时间长度,获取完成后列表排列。表3-10 艺术家列表用例用例名称:艺
39、术家参与者:用户目标:使得艺术家列表显示艺术家名称,下面一行是歌曲名称前置条件:播放器在主界面基本事件流:1.用户单击主界面上艺术家模块 2.艺术家列表显示以艺术家排列的列表3.3.3 专辑模块需求在专辑模块中我们需要获取歌曲的名称、歌曲所属的专辑和音乐的时间长度,获取完成后列表排列。表3-11 专辑列表用例用例名称:专辑参与者:用户目标:使得专辑列表显示歌曲所属专辑名称,下面一行是专辑名称前置条件:播放器在主界面基本事件流:1.用户单击专辑模块 2.专辑列表显示以专辑名称排列的列表3.3.4 最近播放模块需求在最近播放模块中我们需要按照由近到远的播放顺序将音乐列表排列,只需要获取歌曲的名称即
40、可。表3-12 最近播放用例用例名称:最近播放参与者:用户目标:显示用户最近播放歌曲前置条件:播放器在主界面基本事件流:1.用户单击最近播放模块 2.最近播放模块列表显示按时间前后播放完的歌曲3.3.5 系统性能需求Android系统要求无响应时间为5秒,所以歌曲播放、暂停、上一曲/下一曲、初曲/终曲、进入播放器程序、进入音乐列表等等操作的系统响应时间最长均不能超过5秒。3.3.6 运行环境需求操作系统:Android手机基于Linux操作系统Android系统要求无响应时间为5秒,所以歌曲播放、暂停、上一曲/下一曲、初曲/终曲、进入播放器程序、进入音乐列表等等操作的系统响应时间最长均不能超过
41、5秒。支持环境:Android 2.3.3 4.2版本第4章 详细设计及功能实现4.1 播放器界面的设计播放器的界面设计包括音乐播放界面、播放器主界面和播放器菜单托盘。音乐播放界面实现了声音进度条控制,歌曲信息获取,上一曲/下一曲,初曲/终曲,播放,暂停,单曲循环,顺序播放,随机播放,歌曲播放进度控制,播放进度时间获取。音乐播放界面整体是一个线性布局,里面是个大的相对布局,相对布局内部分布着三个线性布局依次排列。其中第一个线性布局获取显示歌曲信息、歌手信息,实现音量控制、播放模式选择;第二个线性布局实现歌词滚动播放;第三个线性布局实现播放器的基本功能、播放进度控制和播放进度时间的获取。其中播放
42、按钮、暂停、上一曲、下一曲、播放模式、声音控制等功能在MusicActivity中实现,在按下和得到焦点的时候会做相应的改变。音乐播放界面的 (包括各种控制按钮) 布局代码具体见reslayoutmusic.xml文件中,播放界面如下图所示(图4-1)。图4-1 音乐播放界面播放器主界面包括四个部分,由五个activity组成:MainActivity、ListActivity、ArtistsActivity、AlbumsActivity、SongsActivity。在reslayoutmain.xml中布局,通过MainActivity搭建好主界面框架,其它四个activity完成具体页面。
43、由于本播放器页面布局是仿Android原生播放器布局,主界面的四个模块分别为音乐、艺术家、专辑、最进播放。音乐模块获取音乐名称以及音乐持续时间列表排列;艺术家模块获取歌手、音乐名以及音乐持续时间列表排列;专辑模块获取专辑名、音乐名以及音乐持续时间列表排列;最近播放模块获取音乐名称以及音乐持续时间并且按照最近播放顺序列表排列。播放器主界面如下图所示(图4-2)。图4-2 播放器主界面播放器菜单托盘的设计使用onCreateOptionsMenu方法和onOptionsItemSelected方法,实现了播放器系统退出和软件版本信息查看。4.2 播放动画的设计在resanim文件夹中专门放置动画文件,alpha_z.xml文件在播放器音乐播放界面的歌词动态播放中使用。其调用动画关键代码为:歌词动态显示时,随着歌曲播放进度歌词播放完毕后向