文档详情

Android开发音乐播放器毕业论文

熏**
实名认证
店铺
DOC
2.39MB
约48页
文档ID:154800995
Android开发音乐播放器毕业论文_第1页
1/48

郑州大学毕业设计(论文)郑州大学毕业设计(论文)题 目: 基于Android平台的音乐播放器 指导教师: 李妍 职称: 讲师 学生姓名: 陈小雨 学号:20107790205 专 业: 计算机科学与技术(软件开发) 院(系): 软件学院 完成时间: 2014年05月05日 2014年05月05日目 录摘 要 1ABSTRACT.......................................................................................................................2前 言 31 Android平台及开发工具介绍 41.1 Android平台简介 41.1.1 Android平台架构 41.1.2Android的四大组件 61.2 Android的开发环境 81.2.1 Eclipse 81.2.2 Android SDK 81.3 本章小结 92 需求分析 102.1 播放器的设计目标 102.2 软件的可行性研究 102.2.1 经济上的可行性 102.2.2技术上的可行性 112.2.3操作上的可行性 112.3 播放器的功能需求分析 112.3.1播放器的基本功能 112.3.2歌曲列表的功能 142.3.3菜单的设置功能 162.4 本章小结 183 总体设计 193.1设计原则 193.1.1总体设计路线 193.1.2 系统功能结构图 203.1.3系统流程图 213.2 主要功能设计 213.2.1歌曲列表模块 213.2.2 音乐播放模块 223.2.3 专辑列表模块 23 3.2.4 菜单设置模块 243.3系统的安全设计...................................................................................243.4 本章小结 254 详细设计与实现 264.1 欢迎界面 264.2 歌曲播放界面 274.2.1 播放音轨SeekBar 284.2.2 播放调节功能 284.3 歌词显示界面 294.4 列表显示界面 304.5 菜单设置 314.6 本章总结 335 音乐播放器的测试 345.1 测试模型 355.1.1 V模型 355.1.2 W模型 355.2 测试模型的选择 375.3 测试方法 375.3.1 白盒测试 375.3.2 黑盒测试 385.3.3 测试方法的选择 385.4 功能的测试与实现 384.2.1 播放器整体功能的实现 394.2.2 播放器主要模块功能测试 405.5 测试结论 405.6 测试过程与总结 405.7 本章小结 41结 论 42致 谢 43参考文献 44II摘 要Android平台是Google公司最新推出的一个平台,该平台对移动设备的程序集中包括一个操作系统,一个中间件和一些关键性应用。

使用该平台不需要任何费用,代码完全开放开发人员可以在平台系统上快速开发,并可以利用其它开发人员的工作成果所以,这为开发创造了更大的灵活性,工作少,周期短,快速成型,并一步到位,同时用户可以最大限度的自定义自己的,以丰富自己的功能,增加在市场上的竞争力 本文以Android开发平台为基础,首先简要介绍了安卓平台发展历程、以及当前国内外的发展现状然后详细的介绍了Android开发平台的开发环境之后对基于Android平台的音乐播发器系统做了一个详细的需求分析在需求分析结束后详细论述了音乐播放器的详细设计根据Android开发平台自身的结构特点,把音乐播放器的开发分为两个部分来进行分析和设计,一部分是窗口的设计,主要是定义窗口的属性和关联窗口的处理函数;另一部分是功能的实现,主要是结合Android平台提供的资源和对音乐播放器的功能分析最终实现定义的功能最后对基于Android开发平台的音乐播放系统进行功能测试与验证关键词:Android平台,Java,音乐播放器ABSTRACT Android platform is Google’S latest launch of a mobile platform,the platform for procedures of mobile devices,includes an operating systems,a middle ware and some critical applications.The platform does not require any charges.The code is completely open.Developers can quickly develop on the platform system and other developers can use the results of the work by other developers.Therefore,It made greater flexibility for the development of mobile phone,less work,short cycle,rapid prototyping and one-stop,meanwhile users can customize their mobile phones best to enrich the functions of their cell phones,competitiveness of mobile phones market.Android platform is based on Linux systems using the Window kernel.The software call speed up the rate of transplantation.This article takes the Android developing platform as a foundation.First it briefly introduces android platform development,as well as the current domestic and foreign development present situation.After the discussion of the rationale above,this article introduces the development environment of Android developing platform in detail and makes a detailed demand analysis to Music player based on the Android developing platform.Then this article gives a detailed software design of Music player.Based on the Android developing platform’s feature.I divide the Music player’s development into two parts to analyze and design.One part is the window design,mainly defines the window attribute and the connected window processing function;Another part is function realization,mainly unifies the resources which the Android platform provides and function analysis to the Music player to accomplish the function which we defined.Finally it carries on the function test based on the Music player of Android platform. ’Key Words:Android platform, Java,Music player 前 言随着市场的迅速发展,拥有智能已经不再是奢侈昂贵的象征。

在智能的争夺战中,Android不得不说是减低智能价格的一大功臣Android系统是谷歌公司开发的免费开源的移动终端操作系统适合于和平板电脑开始动摇苹果走高端客户大局势也动摇在市场在长久以来在分割局势在Android系统飞速发展的今天,Android以操作简单、免费、不受开发商限制等优点,Android无疑越来越受到人们和开发商的喜爱,各种音频视频资源也在网上广为流传,这些资源看似平常,但已经渐渐成为人们生活中必不可少的一部分了于是各种播放器也紧跟着发展起来的音乐播放功能已经是大家比较关注的一个部分了,不少人在购买的时候都会关心的音乐播放的能力,这也足以看出目前大家对音乐播放功能的重视,所以一款性能良好的音乐播放器软件一定会受到欢迎Android平台是完全开放的平台,智能里的各种应用软件也越来越完备,在Android平台设计和开发一款音乐播放器可以摆脱不够智能音乐播放器的因素,并且具有很广阔的前景但是很多播放器一味追求外观花哨,功能庞大,对用户的造成了很多资源浪费,而对于大多数普通用户,许多功能用不上,形同虚设一款专业的音乐播放软件是中必不可少的要素,几乎市场上所有的都拥有一个自带的音乐播放软件,通过软件可以对音乐欣赏中一些必要的元素进行人性化的设置,同时在操作的时候也能得到一定的便利但是不能满足用户的所有要求,所以开发一款个性化的音乐软件是非常有必要的,本项目就是综合以上因素设计开发的,具有基本的音乐播放功能以及个性化设置,易浏览易操作。

8 1 Android平台及开发工具介绍基于Android平台的音乐播放系统是在JDK6.0的环境下选用Java语言,采用Eclipse开发工具,并在windows系统PC机上安装SDK4.0模拟器而开发的本章对基于Android的音乐播放系统所涉及的体系结构、应用程序开发工具、数据库等方面的技术做了简要说明1.1 Android平台简介Android一词本意是指“机器人”同时也是Google于2007年11月5日宣布的基于Linux平台的开源操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成在优势方面,Android平台首先就是其开发性,开发的平台允许任何移动终端厂商加入到Android联盟中来显著的开放性可以使其拥有更多的开发者,随着用户和应用的日益丰富,一个崭新的平台也将很快走向成熟它还有丰富的硬件选择,这一点还是与Android平台的开放性相关,由于Android的开放性,众多的厂商会推出千奇百怪,功能特色各具的多种产品Android操作系统最初由Andy Rubin开发,最初主要支持2005年由Google收购注资,并组建开放联盟开发改良,逐渐扩展到平板电脑及其他领域上。

Android的主要竞争对手是苹果公司的iOS以及RIM的Blackberry OS2011年第一季度,Android在全球的市场份额首次超过塞班系统,跃居全球第一 2012年2月数据,Android占据全球智能操作系统市场59%的份额,中国市场占有率为68.4% 1.1.1 Android平台架构Android平台主要包括Applications、Application Framework、Libraries、Android Runtime和Linux Kernel几部分,如图1.1所示1. Applications(应用程序) Android提供了一组应用 程序,包括Email酷虎段、SMS程序、日历、地图、浏览器、通讯录等这部分程序均使用Java用语言编写 图1.1 Android平台架构 2.Application Framework(应用程序框架) 无论是Android提供的应用程序还是开发人员自己编写的应用程序,都需要使用Application Framework(应用程序框架)通过使用Application Framework,不仅可以大幅度简化代码的编写,而且可以提高程序的复用性。

2. Libraries(库) Android提供了一组C/C++库,他们为平台的不同组件所使用开发人员通过Application Framework来使用这些库所提供的不同功能 4. Android Runtime(Android运行时) Android运行时包括核心库和Dalvik虚拟机两部分核心库中提供了Java语言核心库中包含的大部分功能,虚拟机负责运行程序Dalvik虚拟机专门针对移动设备进行编写,不仅效率更高,而且占用更少的内存 5. Linux Kernel(linux内核) Android平台使用Linux2.6版内核提供的核心系统服务,包括安全性、内存管理、进程管理等 1.1.2 Android的四大组件 Android四大基本组件分别是Activity,Service服务,Content Provider内容提供者,BroadcastReceiver广播接收器1. Activity从字面上理解,Activity是活动的意思一个Activity通常展现为一个可视化的用户界面,是Android程序与用户交互的窗口,也是Android组件中最基本也是最复杂的一个组件。

从视觉效果来看,一个Activity占据当前的窗口,响应所有窗口事件,具备有控件,菜单等界面元素从内部逻辑来看,Activity需要为了保持各个界面状态,需要做很多持久化的事情,还需要妥善管理生命周期,和一些转跳逻辑对于开发者而言,需要派生一个Activity的子类,进而进行编码实现各种功能方法2. Service 服务是运行在后台的一个组件,从某从意义上说,服务就像一个没有界面的Activity它们在很多Android的概念方面比较接近,封装有一个完整的功能逻辑实现,接受上层指令,完成相关的事件,定义好需要接受的Intent提供同步和异步的接口Android中得服务其实与windows中得服务类似,它执行长时间运行的操作,或运程进程执行工作服务不提供用户界面,例如在后台下载东西,播放音乐,在你播放音乐的同时还可以干其他事情,而不会阻塞用于与其他活动的交互另一个组件,比如Activity可以启动一个服务,并运行或者绑定到它3.Broadcast Receiver广播接收者,不执行任何任务,广播是一种广泛运用的在应用程序之间传输信息的机制 而 BroadcastReceiver 是对发送出来的广播进行过滤接收并响应的一类组件。

Broadcast Receiver 不包含任何用户界面然而它们可以启动一个Activity以响应接受到的信息,或者通过NotificationManager通知用户可以通过多种方式使用户知道有新的通知产生:闪动背景灯、震动设备、发出声音等等通常程序会在状态栏上放置一个持久的图标,用户可以打开这个图标并读取通知信息在Android中还有一个很重要的概念就是Intent,如果说Intent是一个对动作和行为的抽象描述,负责组件之间程序之间进行消息传递那么Broadcast Receiver组件就提供了一种把Intent作为一个消息广播出去,由所有对其感兴趣的程序对其作出反应的机制4. Content Provider即内容提供者,作为应用程序之间唯一的共享数据的途径,Content Provider 主要的功能就是存储并检索数据以及向其他应用程序提供访问数据的接口 Android有一个独特之处就是,在 Android 中,每个应用程序都是用自己的用户 ID 并在自己的进程中运行这样的好处是,可以有效地保护系统及应用程序,避免被其他不正常应用程序所影响,每个进程都拥有独立的进程地址空间和虚拟空间。

Android的数据(包括files, database等…)都是属于应用程序自身,其他的应用是不能访问到的,更无法直接进行操作所以如果你想实现不同应用之间的数据共享,就不得不用content provider了为了使其他程序能够操作数据,在Android中,可以通过做成 ContentProvider提供数据操作的接口其实对应用而言,也可以将底层数据封装成ContentProvider,这样可以有效的屏蔽底层操作的细节,并且使程序保持良好的扩展性和开放性Android提供了一些主要数据类型的Contentprovider,比如音频、视频、图片和私人通讯录等可在android.provider包下面找到一些android提供的Contentprovider可以获得这些Contentprovider,查询它们包含的数据,当然前提是已获得适当的读取权限如果我们想公开自己应用程序的数据,可以创建自己的 Content provider 1.2 Android的开发环境Android的上层应用程序是用Java语言开发的,同时需要基于Dalvik虚拟机所以Google公司推荐使用主流的Java继承开发环境 Eclipse+ADT插件。

有了Eclipse还不够,因为使用Java语言进行开发,应该有由SUN公司提供的Java SDK,其中包含了JRE,JavaRuntime Environment另外Android的应用程序开发还是和Java开发有一定区别,所以还需有一个Google提供的Android SDK有了这三个软件就可以开发Android应用程序了1.2.1 EclipseEclipse 是一个开放源代码的、基于Java的可扩展开发平台就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境虽然大多数用户很乐于将 Eclipse 当作 Java集成开发环境(IDE)来使用,但 Eclipse 的目标却不仅限于此Eclipse 还包括插件开发环境(Plug-in Development Environment,PDE),这个组件主要针对希望扩展 Eclipse 的软件开发人员,因为它允许他们构建与 Eclipse 环境无缝集成的工具由于 Eclipse 中的每样东西都是插件,对于给 Eclipse 提供插件,以及给用户提供一致和统一的集成开发环境而言,所有工具开发人员都具有同等的发挥场所Eclipse的安装比较简单,所以在这里就不做详细介绍了。

1.2.2 Android SDKSDK:(software development kit)软件开发工具包被软件开发工程师用于为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件的开发工具的集合因此,Android SDK 指的是Android专属的软件开发工具包 Android SDK不用安装,下载后,直接解压即可,但由于Android SDK采用了Java语言,所以需要先安装JDK 5.0及以上版本使用Eclipse进行android应用开发需要给Eclipse装adt插件,这样Eclipse就可以和android sdk建立连接,可以在Eclipse中启动android模拟器进行程序调试等ADT插件安装这里不再累赘,插件的安装URL为:也可以下载adt的zip包安装 安装完插件后,需要做一些简单的配置:  1、在Eclipse中,选择Window > Preference;  2、从左侧的菜单中,选择Android项;  3、设置SDK Location,点Browse选择SDK的安装根目录;  4、OK,完成1.3 本章小结本章对Android的开发平台、开发环境进行了简要介绍,在优势方面,Android平台首先就是其开发性,开发的平台允许任何移动终端厂商加入到Android联盟中来。

显著的开放性可以使其拥有更多的开发者,随着用户和应用的日益丰富,Android平台也将很快走向成熟 开发性对于Android的发展而言,有利于积累人气,这里的人气包括消费者和厂商,而对于消费者来讲,随大的受益正是丰富的软件资源开放的平台也会带来更大竞争2 需求分析软件需求分析是软件生存期中重要的一步,也是决定性的一步需求分析是软件定义时期的最后一个阶段,它的基本任务是准确地回答“系统必须做什么”这个问题,深入描述软件的功能和性能的需求[9]在这一节中主要就是围绕“Android开发平台的音乐播放器系统必须做什么”这个问题来分析说明的2.1 播放器的设计目标本系统属于用户常用的音乐播放器可以方便用户平时对音乐文件的操作本系统应达到以下目标: (1) 软件采用人机交互的方式,界面美观友好 (2) 操作灵活、方便、易上手 (3) 能够对音乐文件进行有效的管理 (4) 满足用户对播放器的个性化设置 (5) 系统应最大限度地实现易维护性和易操作性2.2 软件的可行性研究 2.2.1 经济上的可行性Android 是 Google 历经数年和投资数亿美元开发出来的智能系统,是 基于 Linux 内核的操作系统,是 Google 公司在 2007 年 11 月 5 日公布的操 作系统。

随着各大移动终端生产商大力开发和生产基于 Android 的移动智能设备, Android迅速得到业界和社会的认可,并成为整个产业的热点,基于 Android 平 台的各类人才逐渐成为各大企业竞相争夺的焦点 而且 Android 是一个开放的系统,不管是企业还是个人都可以参与来表达自己的创意和想法2.2.2 技术上的可行性Google 发起了围绕 Android 的组织——开放联盟, 其英文全称为 “Open Handset Alliance” 它采用了软件堆层(software stack,又名以软件叠层)的架构,主要分为三部分底层 Linux 内核只提供基本功能;其他的应用软件则 由各公司自行开发,部分程序以 Java 编写 2.2.3 操作上的可行性 本系统采用Android框架,可以在eclipse中安装Android开发插件,使用Android模拟器也可以使用任意Android终端模拟器和真正的Android没有太大区别,人们对操作早已熟悉2.3 播放器的功能需求分析根据项目的目标,我们可获得项目系统的基本需求,以下从不同角度来描述系统的需求,并且使用用例图来描述系统的功能需求,播放器的基本控制需求。

2.3.1 播放器的基本功能在播放器运行时,首先进入的是欢迎界面,点击进入后进入主界面,主界面是扫描SD卡里的本地歌曲列表,对列表里的歌曲可进行播放、铃声设置、查看歌曲详细信息的操作、点击播放列表中的歌曲名可以跳转到播放界面,在播放界面可以控制歌曲的播放、暂停、上一首、下一首、进入播放列表、进入专辑列表、查看歌词、拖动歌曲进度等,在主界面中还可以通过点击的菜单键弹出的个性化设置对话框,对进行睡眠模式设置、日/夜模式、查看软件关于信息、退出程序的操作其用例图如图2.1所示 图2.1 播放器用例图音乐播放器的用例描述如下:用例名称:播放参与者:用户目标:使得用户可以播放在播放列表中选中的歌曲前置条件:播放器正在运行基本事件流:1.用户单击“播放”按钮 2.播放器将播放列表中的当前的歌曲用例名称:暂停参与者:用户目标:使得用户可以暂停正在播放的歌曲前置条件:歌曲正在播放且未停止和暂停基本事件流:1.用户单击“暂停”按钮 2.播放器将暂停当前的歌曲用例名称:上/下一首参与者:用户目标:使得用户可以听上一首或下一首歌曲前置条件:歌曲正在播放或暂停基本事件流:1.用户单击“上一首或下一首”按钮 2.播放器将播放上一首或下一首歌曲用例名称:上一首/下一首参与者:用户目标:使得用户可以听上一首或下一首歌曲前置条件:歌曲正在播放或暂停基本事件流:1.用户单击“上一首或下一首”按钮 2.播放器将播放上一首或下一首歌曲用例名称:音乐列表参与者:用户目标:使得用户可以进入音乐列表前置条件:程序在运行基本事件流:1.用户单击“音乐列表”按钮 2.播放器进入音乐列表 用例名称:专辑列表参与者:用户目标:使得用户可以进入专辑列表前置条件:程序在运行基本事件流:1.用户单击“专辑列表”按钮 2.播放器进入专辑列表2.3.2歌曲列表的功能当用户选中列表中某一项歌曲,就能对歌曲进行播放、查看详细信息、铃声设置的操作,其用例图如图2.2所示: 2.2 歌曲列表用例图歌曲列表的用例描述如下:用例名称:播放参与者:用户目标:使得程序播放选中的歌曲前置条件:程序运行在歌曲列表选项中基本事件流:1.用户长按列表中的歌曲名 2.系统弹出操作对话框 3.用户单击对话框中的播放按钮 4.播放器进入播放状态用例名称:查看歌曲详细参与者:用户目标:使得程序显示歌曲详情前置条件:程序运行在播放菜单选项中基本事件流:1.用户长按列表中的歌曲名 2.系统弹出操作对话框 3.用户单击“查看歌曲详细”按钮 4.显示歌曲详细状态 用例名称:铃声设置参与者:用户目标:使对歌曲进行来电铃声、闹铃铃声、通知铃声设置前置条件:程序运行在播放菜单选项中基本事件流:1.用户长按列表中的歌曲名 2.系统弹出操作对话框 3.用户单击“铃声设置”按钮 4.系统弹出铃声设置选择框 5.用户选择要进行的设置 6.系统对铃声进行设置2.3.3菜单的设置功能菜单里包含了对音乐播放器的基本设置,其用例图如图2.3所示: 2.3 设置菜单用例图菜单设置的用例描述如下:用例名称:退出参与者:用户目标:使得程序停止并退出播放前置条件:程序运行在菜单对话框的常用设置下面基本事件流:1.用户点击菜单按钮 2.系统弹出菜单对话框 3.用户单击对话框中的常用按钮 4.系统显示退出按钮 5.用户点击退出按钮 6.系统退出程序 用例名称:睡眠模式设置参与者:用户目标:用户可设置运行时间使系统自动关闭前置条件:程序运行在菜单对话框的工具设置下面基本事件流:1.用户点击菜单按钮 2.系统弹出菜单对话框 3.用户单击对话框中的工具按钮 4.系统显示睡眠模式按钮 5.用户点击睡眠模式按钮 6.系统弹出时间设置对话款程序 7.用户设置时间后点击确定 8.系统提示设置是否成功用例名称:日/夜模式设置参与者:用户目标:用户可改变屏幕的明暗度前置条件:程序运行在播放菜单选项中基本事件流:1.用户点击菜单按钮 2.系统弹出菜单对话框 3.用户单击对话框中的工具按钮 4.系统显示日/夜模式按钮 5.用户点击日/夜模式按钮 6.系统改变屏幕的明暗度用例名称:关于参与者:用户目标:查看播放器的有关说明前置条件:程序运行在菜单对话框的常用设置下面基本事件流:1.用户点击菜单按钮 2.系统弹出菜单对话框 3.用户单击对话框中的关于按钮 4.系统显示关于页面 2.4 本章小结本章对软件开发中将要面临的问题及其解决方案进行初步设计及合理安排,明确开发目标;画出了系统的用例图,让用户对系统的总体结构一目了然,对系统的功能进一步认识。

173 总体设计该音乐播放器的总目标是,实现内存卡内音乐的读取、对音乐播放的基本操作、实现歌词的同步功能、用户友好性操作的实现等,在实现这些功能的基础上要考虑到音乐播放器的UI界面的设计的友好性易操作3.1 设计原则系统设计是一个把软件需求转换成用软件系统表示的过程通过对目标系统的分析和研究,做出对音乐播放器的整体规划,这是全面开发系统的重要基础下面介绍系统功能结构图和流程图3.1.1 总体设计路线在Android的开发中界面的设计是很重要的,因为它区别于web的开发它的界面小,又要在这么小的界面上竟可能多的去实现功能,所以在UI设计上,组件的摆放问题以及屏幕之间滑动跳转问题都要都是在设计工程中中要考虑到的,其次,Android程序主要应用在手持设备上,不论用户是单手操作还是双手操作,都必须考虑到组件摆放的易操作性,所以要考虑到组件摆放的区域问题,除此之外在UI设计的编写上也要考虑到代码的可更改问题,如果单纯的用XML文件实现,那么在软件的进一步更改开发上可能会遇到很大问题,所以该系统的大部分界面都是通过xml和Java代码共同实现的在完成音乐播放器界面的设计后就是功能模块的具体设计了,功能这一块是根具需求来的,有怎么样的需求就对应怎样的功能设计,该音乐播放器所要实现的功能都是通过各个类之间的调用实现的,这样就增加了代码的可读性,对于音乐播放器来说最主要的还是实现音乐播放功能,第一部分就是音乐文件读取、音频文件信息的读取,其次是对音乐的操作,然后就是播放器的个性化设置。

所以要做好也是一件不简单的事情3.1.2 系统功能结构图系统主要分为四大模块,歌曲列表模块、歌曲播放模块、专辑列表模块、菜单设置模块,根据设四个模块的命名就可以知道这四个模块的基本功能了,歌曲列表模块就是在程序启动的时候自动扫描并获取添加歌曲到歌曲列表中,然后用户可以对列表内的歌曲进行一些操作,歌曲播放模块不仅要显示正在播放的歌曲信息而且要实现对歌曲的一些基本操作,在播放界面实现了一个类似android的Luncher 划屏查看歌词的功能,还有是实现了歌曲图片的一个倒影效果显示,专辑列表模块主要考虑到内存歌曲过多时为方便用户找到自己喜欢的歌手而设置的一个网格列表,当你选种歌曲时它可以对歌曲就行播放菜单设置模块呢,主要实现对音乐播放器的个性化设置,满足用户除了听歌曲以外的需求,主要有三个子功能,退出程序、睡眠模式设置、日夜模式设置,在日夜模式设置这块主要就是改变屏幕的明暗度,获取当前系统设置的明暗度,然后对其做改变音乐播放器的系统功能结构图(如图3.1所示)图3.1 系统功能结构图3.1.3 系统流程图 音乐播放流程图(如图3.2所示) 图3.2 音乐播放流程图3.2 主要功能设计(功能模块介绍)3.2.1 歌曲列表模块用户启动播放器后进入的界面是歌曲列表界面,歌曲列表主要是自动读取内存里的歌曲信息,其中显示的有歌曲图片、歌曲名、演唱者、歌曲总时长,用户通过浏览歌曲列表可以对歌曲进行一些操作,其功能序列图如图3.3所示。

该功能模块实现了以下几个子功能:a. 歌曲的播放b. 铃声设置c. 查看歌曲详细信息 图3.3 歌曲列表操作序列图3.2.2 音乐播放模块用户选中要播放的歌曲后跳转到音乐播放界面,音乐播放界面主要显示的有歌曲的信息,以及对音乐操作的按钮,播放、暂停、上一曲、下一曲、音乐进度条等,用户还可以通过划屏查看歌曲的同步歌词,其功能序列图如图3.4所示 图3.4 歌曲列表操作序列图3.2.3 专辑列表模块用户点击专辑列表按钮后可以查看内存里所有的歌曲所属专辑,专辑列表主要显示专辑及专辑名、歌手名,选中要播放专辑后点击可以直接跳转到播放界面,对专辑内的歌曲可以进行播放的基本操作如图3.5所示 图3.5 专辑列表操作序列图3.2.4 菜单设置模块菜单里主要是对播放器的设置,以满足用户的个性化需求,但考虑到本系统以简单易操作的前提下,所以用户的个性化设置不易太多其功能序列图如图3.5所示该功能模块实现了一下几个子功能a. 退出播放器b. 休眠模式设置c. 日/夜模式设置d. 关于播放器 图3.6 菜单设置操作序列图3.3 系统的安全设计安全性是软件系统永恒的主题,其紧迫程度与功能的可拓展性成正比。

越是可以灵活拓展的系统,越是需要一种强大的安全控制机制世界上最安全的系统,就是一坨废铁,因为永远不可能有新功能加入,于是绝对安全如果我们可以在其上编写程序,则需要提供一定程度的安全控制,这时程序有好有坏,也有可能出错如果我们的软件,会通过互联网这样的渠道可以获得,则这种安全上需求会更强烈,因为各种各样的邪恶用意都有可能存在大体上说,安全性控制会有四种需求: (1)应用程序绝对不能对系统造成破坏作为一个系统,它的首要目标当然是共享给运行于其上的应用程序以各种系统级的功能但如果这些应用程序,如果可以通过某种渠道对这个共享的系统造成破坏,这样的系统去运行程序就没有意义,因为这时系统过于脆弱 (2)应用程序之间,最好不能互相干扰如果我们的应用程序,互相之间可以破坏对方的数据,则也不会有很好的可用性,因为这时单个的应用程序也还是脆弱的3)应用程序与系统,应用程序之间,应该提供共享的能力在安全性机制下,我们也还是需要提供手段,让应用程序与系统层之间、应用程序之间可以交互4)还需要权限控制我们可以通过权限来保护系统,一些非法的代码在没有权限的情况就无法造成破坏在给不同应用程序提供系统层功能、提供共享时,应用程序有权限才能执行,没有权限则会拒绝应用程序的访问。

在本项目的开发过程中就遇到了应用程序与系统之间的问题,运行程序之后就使整个系统字库奔溃,同时还遇了权限问题,在Android中你想实现什么样的功能就必须给项目赋予什么样的权限,在本项目中需要给项目提供SD卡读写的权限,所以在编写程序的第一步就要考虑到权限问题,不然后面的工作都没法进行3.4 本章小结本系统严格按照面向对象的思想设计,各功能模块设计由需求而确定,各模块之间只通过接口传递消息,满足了系统模块间“高内聚,低耦合”的要求,同时提高了系统的可拓展性和可维护性4 详细设计与实现详细设计主要是指在系统需求分析的基础上,对整个系统的架构、机器设备的配置、数据的存贮规律以及整个系统的规划等方面进行合理的安排本章主要介绍系统的功能模块划分和详细设计实现部分,根据需求分析,对系统功能结构进行划分,并在此基础上逐步实现系统各项功能4.1 欢迎界面欢迎界面模块主要是用于给用户一种友好的体验,让用户较容易接受本软件进入系统后进入欢迎界面如图4.1,两秒钟后自动跳转到选择进入界面如图4.2,图4.2页面设计采用了相对布局(RelativeLayout) 图4.1欢迎界面 图4.2进入播放主界面图4.2中每张图片都执行的动画顺序,渐现、放大和渐隐,结束后切换图片和文字又开始执行 渐现、放大和渐隐,当最后一张执行完渐隐,切换到第一张,从而达到循环效果,这一效果的实现需要给每个动画设置播放时间、监听事件,并初始化默认值为0,并重写动画结束时的监听事件,实现了动画循环播放的效果。

4.2 歌曲播放界面 Android的每一个可视化界面,都有其的唯一的布局配置文件,该文件里面有各种布局方式,和各种资源文件如图像,文字,颜色的引用,程序在运行时,可以通过代码对各配置文件进行读取这样就可以形成不同的可视化界面和炫丽的效果播放器主界面是一个Activity,Android工程在每个activity启动的时候会首先执行Oncreate()方法,该方法主要执行界面的初始化操作,Activity有个设置布局的方法:Context.setContentView(layoutResID),参数为资源ID,该Id在工程目录res/layout下欢迎界面结束以后进入主界面图4.2所示, 主界面主要采用相对布局(RelativeLayout)分四个模块,最上面显示歌曲信息模块是应用了四个本本框,中间一块专辑及歌曲显示的模块是属于一个自定义模块 图4.2歌曲播放主界面4.2.1 播放音轨SeekBar播放器最重要的一部分就是音轨与歌曲进度同步的实现音轨设置了两个TextView用来显示当前歌曲播放的进度时间和歌曲的长度(图4.6)。

音轨对象SeekBar在歌曲刚开始播放的时候调用方法SeekBar.setMax(),参数传入歌曲的长度SeekBar.setProgress(1)设置游标的起始进度为1Android的线程的开始是通过Handler类来进行的,Handler类是线程与线程之间通信的桥梁,实现Runnable接口会实现里面的run方法,当线程开始的时候,Runnable中的run方法会向Handler发一个Message消息,这样,Handler类就可以接收到run方法发送过来的不同的消息进行不同的代码处理这样就达到了各线程之间的通信要启动一个线程调用Handler的方法postDelayed(Runnable,1000)表示线程睡眠时间是1000ms 让播放歌曲的线程每隔1000ms,即每1秒对音轨的TextView重新设置时间且让进度条前进1秒的进度对音轨进行刷新这样就实现了歌词同步功能SeekBar有一个监听器,该监听器的作用是一直保持着对进度条的监听,当我们用鼠标向SeekBar的各位置进行点击时,它会自动监听其位置,进行相应的位置显示这也是进度条上的游标会不停的移动和歌词时间会不停的变动的原因。

图4.4 播放音轨 4.2.2 播放调节功能实现各按钮水平放置,从左到右依次是上一首、播放、下一首功能按钮用的是布局中的线性布局LinearLayout,;将其设置为水平,如图4.5所示LinearLayout中依次放置播放/暂停,上一首、下一首按钮属性歌曲专辑图片显示,如果有歌曲图片,才会返回,否则为null, 图4.5 基本按钮Android的媒体播放原理:Android源程序已经为我们封装好了一个接口类,叫MediaPlayer该接口在执行行需要一个数据源,通过如下步骤:第一步:MediaPlayer.reset();复位操作,为以后的媒体准备播放作准备第二步: 传入歌曲数据源,这里也是一个数据MediaPlayer.setDataSource(String path);参数需要传一个路径,该接口类在收到路径后将其转化为数据源第三步:准备播放数据源,调用方法MediaPlayer.Prepare()第四步:MediaPlayer.Start();播放数据源,该数据源播放后,不再与程序有关,需要用MediaPlayer.Stop()方法让其停止或MediaPlayer.Start();让其启动。

4.3 歌词显示界面当播放音乐文件时,如果同时存在该歌曲的LRC格式的歌词文件时,系统会自动匹配歌词并且达到同步显示的效果,如图4.3所示 图4.3歌词同步页面当开始播放时候,初始化歌词配置,载入歌词文件并启动线程显示歌词、同时考虑到播放会更换歌曲、还需要重读歌曲信息,此外还要设置歌曲完毕,当一首完毕调用nextMusic方法,那么要首先判断是否最后一首如果是则提示,否则继续播放.歌曲是最后一部分,进度条+歌词滚动,进度条更新部分在updatesb方法通过获取音乐当前播放时刻更新音乐进度条位置歌词滚动部分runnabel通过LrcIndex获取当前音乐对应歌词位置4.4 列表显示界面歌曲列表整体采用了相对布局(RelativeLayout),中间歌曲列表部分采用的是ListView视图,以确保有大量歌曲时能滚动式容纳所有歌曲,如图4.6所示专辑列表采用了网格视图(GridView) 用它能实现视图的网格排列,九宫格视图就是GridVew最典型的使用,GridView是一个AdapterView,所以需要通过适配器来绑定数据,这里使用BaseAdapter。

如图4.7所示 图4.6歌曲列表 图4.7 专辑列表 在Android里面,有一个视图叫ListView,其特点是一个有BaseAdapter的属性,从下到下,或从左到右的显示方式系统默认的方式每一行只显示一个TextView,本播放列表实现了自定义的方式,刚ListView的每一行显示一个音乐图片和一个歌曲名字我们定义一个类MusicAdapter 继承了BaseAdapter,然后通过算法对这个适配器进行扩展,扩展成为第一行能显示一张图片和一个歌曲名字由于BaseAdapter是一个抽象类,我们需要实现里面的抽象方法getVie()该方法返回一个View,即视图视图可以显示在Activity上,所以就可以看到我们想要的歌曲列表界面ListView同样有一个监听器new onItemClickListener(){@Override public void onItemClick(AdapterView arg0, View arg1, int arg2,long arg3) {}},我们只要实现这个方法,就可以监听鼠标的点击事件,当鼠标点击到每一行时,可以通过ListView.getItemAtPositon(int position)得到该行上的信息。

这样就可以通过Intent将数据传入到其它的Activity 4.5 菜单设置界面菜单主要分3个模块:常用、工具、其他默认弹出时在常用目录下,如图4.8所示,在常用里有一个退出程序按钮,用户点击可以退出系统,在工具栏有两个项如图4.9所示,点击睡眠设置模块弹出如图4.10所示的时间设定对话框,点击确定按钮则程序在该设定时间后停止播放,点击日/夜模式设置可以调节屏幕的明暗度,在其他目录下有关于按钮如图4.11所示,点击关于可弹出关于页面如图4.12所示 图4.8 设置菜单 图4.9 工具界面 图4.10 时间设定对话框 图4.11 菜单其他设置 在这个时间设定对话款中默认的数值是5,当你输入为空或者小于一位数大于三位数时,系统会会有错误提示,当你输入正确的时间是,系统会提示你输入成功,这里是通过一个if else判断实现的 播放器的这个日/夜模式设计实际上就是改变屏幕的明暗度,通过获取系统当前屏幕的设置明暗度来进行改变,当系统为亮时程序会自动更改系统设置视屏幕变暗,当程序为为暗时则会使屏幕变亮。

图4.12 菜单其他设置 程序关于这一块同样是用Java代码和XML一起实现的,整体就用了一个线性布局,然后再布局里放入textview组件,对每一个texeview设置不同的样式,最后为返回按钮设置监听跳转设置,点击返回后4.6 本章小结本章主要介绍系统的详细设计与实现,主要对欢迎界面、歌曲播放界面、列表界面及菜单设置界面四个模块进行了简要分析,在播放器的实现中,播放器的界面设计需要达到美观简洁已操作的要求,这一部分的设计对Android程序开发来说是比较重要的325 音乐播放器的测试一个软件产品或系统的开发成功,不仅仅是编写完为使用者提供服务功能的程序而已软件程序编写的完成,其实只是完成了开发任务中的一半与程序的开发相配合的、具有同样重要性的另一半工作,是对开发完毕的软件所进行必要的测试对测试的管理和执行,其重要性不亚于对程序本身的开发你可以花费巨大的资源和努力进行程序的开发,可是你要是没有与此配套的完善的测试,所开发出来的软件往往会因为质量问题无法满足客户的要求和帮助你赢得市场的竞争 近几年来国内。

下载提示
相关文档
正为您匹配相似的精品文档