




免费预览已结束,剩余49页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
精品郑州大学毕业设计(论文)题 目: 基于Android平台的音乐播放器 指导教师: 李妍 职称: 讲师 学生姓名: 陈小雨 学号:20107790205 专 业: 计算机科学与技术(软件开发) 院(系): 软件学院 完成时间: 2014年05月05日 2014年05月05日感谢下载载目录摘 要1ABSTRACT.2前言31 Android平台及开发工具介绍41.1Android平台简介41.1.1Android平台架构41.1.2Android的四大组件61.2 Android的开发环境81.2.1 Eclipse81.2.2Android 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 播放音轨SeekBar284.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参考文献44感谢下载载摘 要Android平台是Google公司最新推出的一个手机平台,该平台对移动设备的程序集中包括一个操作系统,一个中间件和一些关键性应用。使用该平台不需要任何费用,代码完全开放。开发人员可以在平台系统上快速开发,并可以利用其它开发人员的工作成果。所以,这为手机开发创造了更大的灵活性,工作少,周期短,快速成型,并一步到位,同时用户可以最大限度的自定义自己的手机,以丰富自己手机的功能,增加手机在市场上的竞争力。 本文以Android开发平台为基础,首先简要介绍了安卓平台发展历程、以及当前国内外的发展现状。然后详细的介绍了Android开发平台的开发环境。之后对基于Android平台的音乐播发器系统做了一个详细的需求分析。在需求分析结束后详细论述了音乐播放器的详细设计。根据Android开发平台自身的结构特点,把音乐播放器的开发分为两个部分来进行分析和设计,一部分是窗口的设计,主要是定义窗口的属性和关联窗口的处理函数;另一部分是功能的实现,主要是结合Android平台提供的资源和对音乐播放器的功能分析最终实现定义的功能。最后对基于Android开发平台的音乐播放系统进行功能测试与验证。关键词:Android平台,Java,音乐播放器ABSTRACT Android platform is GoogleS latest launch of a mobile platform,the platform for procedures of mobile devices,includes an operating systems,a middle ware and some critical applicationsThe platform does not require any chargesThe code is completely openDevelopers can quickly develop on the platform system and other developers can use the results of the work by other developersTherefore,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 marketAndroid platform is based on Linux systems using the Window kernelThe software call speed up the rate of transplantationThis article takes the Android developing platform as a foundationFirst 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 platforms feature.I divide the Music players development into two parts to analyze and designOne 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 definedFinally 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平台设计和开发一款音乐播放器可以摆脱不够智能音乐播放器的因素,并且具有很广阔的前景。但是很多播放器一味追求外观花哨,功能庞大,对用户的手机造成了很多资源浪费,而对于大多数普通用户,许多功能用不上,形同虚设。一款专业的音乐播放软件是手机中必不可少的要素,几乎市场上所有的手机都拥有一个自带的音乐播放软件,通过软件可以对音乐欣赏中一些必要的元素进行人性化的设置,同时在操作的时候也能得到一定的便利但是不能满足用户的所有要求,所以开发一款个性化的音乐软件是非常有必要的,本项目就是综合以上因素设计开发的,具有基本的音乐播放功能以及个性化设置,易浏览易操作。感谢下载载 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 OS。2011年第一季度,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,比如音频、视频、图片和私人通讯录等。可在vider包下面找到一些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 本章小结本章对软件开发中将要面临的问题及其解决方案进行初步设计及合理安排,明确开发目标;画出了系统的用例图,让用户对系统的总体结构一目了然,对系统的功能进一步认识。感谢下载载3 总体设计该音乐播放器的总目标是,实现内存卡内音乐的读取、对音乐播放的基本操作、实现歌词的同步功能、用户友好性操作的实现等,在实现这些功能的基础上要考虑到音乐播放器的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)设置游标的起始进度为1。Android的线程的开始是通过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方法,那么要首先判断是否最后一首。如果是则提示,否则继续播放.歌曲是最后一部
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- DB14-T 1621-2025 白灵菇仿生态栽培技术规程
- 商务楼宇办公室转租合作协议范本
- 禁止过户原因复杂房产买卖合同规范文本
- 跨区域车辆抵押担保协议样本
- G6PD缺乏症的护理
- 2025年初中物理八年级下册(沪科版)教学课件 第九章 第一节
- 2025年公共关系与广告行业考试试卷及答案
- 比特币挖矿能耗评估
- 餐饮业员工福利保障合作协议书
- 房地产开发财务合同部成本控制管理约定
- 建筑工程行业项目成本控制方案
- 10千伏环网柜(箱)标准化设计方案 (2023 版)
- 第5课 光色交汇 课件 七年级美术下册 浙美版2024
- 车辆报废申请书
- 合同范本之简易版劳动合同5篇
- 戈麦斯安全法则
- 2025年中国第三方支付系统市场运行态势及行业发展前景预测报告
- 新加坡专业服务公司指南 202502
- 大学物理上册总复习
- 心内科工作流程
- 《土壤与土壤改良》课件
评论
0/150
提交评论