基于Android和SQLite数据库的手机音乐播放器

Unfair

发布日期: 2018-09-27 22:25:38 浏览量: 2587
评分:
star star star star star star star star star_border star_border
*转载请注明来自write-bug.com

摘 要

本文就Android系统上一款音乐播放器应用程序的设计与实现进行讨论。Android是一个开源的系统,它底层是基于Linux的操作系统,本论文的音乐播放器采用了Android开源系统技术,利用Java语言和Eclipse编辑工具对播放器进行编写。同时给出了详细的系统设计过程、部分界面图及主要功能运行流程图,本文还对高度过程中遇到的问题和解决方法进行了详细的讨论,该音乐播放器集播放、暂停、停止、上一首、下一首、音量调节、歌词显示等功能于一体,性能良好,在Android系统中能独立运行。该播放器还拥有对手机文件浏览器的访问功能、歌曲播放模式、以及歌词开闭状态的友好设置.MP3的全名是MPEG Audio Layer-3,是一种声音文件的压缩格式,由于本播放器只限于应用层程序的探讨,所以对具体的压缩算法不作深究。

关键词:Android 开源系统 linux 音乐播放器

第一章 引 言

1.1 项目背景

当今社会的生活节奏越来越快,人们对手机的要求也越来越高,由于手机市场发展迅速,使得手机操作系统也出现了不同各类,现在的市场上主要有三个手机操作系统,Windows mobile,ios,以及谷歌的Android操作系统,其中占有开放源代码优势的Android系统有最大的发展前景。那么能否在手机上拥有自己编写的个性音乐播放器呢?能的,谷歌Android系统就能做到。本文的音乐播放器就是基于谷歌Android手机平台的播放器。

Android:是谷歌于2007年公布的开放式源代码手机系统,它的开放性就优于其它封闭式的手机系统,因此,任何人都可能根据自己的喜好将手机系统中的所有功能重新编写。这使得越来越多的人关注这个操作系统。本次作品音乐播放器就是基于Android平台的。

随着计算机的广泛运用,手机市场的迅速发展,各种音频视频资源也在网上广为流传,这些资源看似平常,但已经渐渐成为人们生活中必不可少的一部分了。于是各种手机播放器也紧跟着发展起来,但是很多播放器一味追求外观花哨,功能庞大,对用户的手机造成了很多资源浪费,比如CPU,内存等的占用率过高,在用户需要多任务操作时,受到了不小的影响,带来了许多不便,而对于大多数普通用户,许多功能用不上,形同虚设。针对以上各种弊端,选择了开发多语种的音频视频播放器,将各种性能优化,继承播放器的常用功能,满足一般用户(如听歌,看电影)的需求,除了能播放常见格式的语音视频文件,高级功能:还能播放RMVB格式的视频文件。此外,还能支持中文、英文等语言界面。

要研究了各种市场上流行的手机播放器,了解它们各自的插件及编码方式,还有各种播放器播放的特别格式文件,分析各种编码的优缺点以及各种播放器本身存在的缺陷和特点,编写出功能实用,使用方便快捷的播放器。目前已经实现的功能有能播放常见音频文件的功能,如MP3,WAV,等,拥有播放菜单,能选择播放清单,具备一般播放器的功能,如快进,快退,音量调节等。播放模式也比较完善,有单曲,顺序,循环,随机播放等模式。

1.2 编写目的

现今社会生活紧张,而欣赏音乐是其中最好的舒缓压力的方式之一,本项目的目的是开发一个可以播放主流音乐文件格式的播放器,本设计的实现的这主要功能是播放Mp3,Wav多种格式的音乐文件,并且能够控制播放,暂停,停止,上一曲,下一曲,音量调节,视觉外观,播放列表和歌曲文件的管理操作等多种播放控制功能,界面简明,操作简单。

本项目是一款基于Android手机平台的音乐播放器,使Android手机拥有个性的多媒体播放器,使手机显得更生动灵活化,与人们更为接近,让手机主人随时随地处于音乐视频的旋律之中。使人们的生活更加多样化。也使设计者更加熟练Android的技术和其它在市场上的特点。

第二章 Android项目介绍

2.1 什么是Android

2.1.1 Android简介

Android一词的本义指“机器人”,同时也是Google于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成,号称是首个为移动终端打造的真正开放和完整的移动软件。目前最好的是Android2.0的摩托罗拉Droid。

Android是基于Linux内核的软件平台和操作系统,早期由Google开发(在华注册商标名为“安致”),后由开放手机联盟(Open Handset Alliance)开发。它采用了软件堆层(softwarestack,又名以软件叠层)的架构,主要分为三部分。低层以Linux内核工作为基础,只提供基本功能;其他的应用软件则由各公司自行开发,以Java作为编写程序的一部分。另外,为了推广此技术,Google和其它几十个手机公司建立了开放手机联盟。Android在未公开之前常被传闻为Google电话或gPhone。大多传闻认为Google开发的是自己的手机电话产品,而不是一套软件平台。到了2010年1月,Google开始发表自家品牌手机电话的Nexus One。目前最新SDK版本为Android2.1

2.1.2 Android Features特性

Android系统有如下的几大特性:

  • 应用程序框架支持组件的重用与替换
  • Dalvik虚拟机 专门为移动设备做了优化
  • 内部集成浏览器,该浏览器基于开源的WebKit引擎
  • 优化的图形库,包括2D和3D图形库,3D图形库基于OpenGL ES
  • SQLite 用作结构化的数据存储
  • 多媒体支持,包括常见的音频、视频和静态印象文件格式(如MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF)
  • GSM电话(依赖于硬件)
  • 蓝牙Bluetooth, EDGE, 3G, and WiFi (依赖于硬件)
  • 照相机,GPS,指南针,和加速度计 (依赖于硬件)
  • 丰富的开发环境,包括设备模拟器,调试工具,内存及性能分析图表,和Eclipse集成开发环境插件

2.1.3Android基本框架(AndroidArchitecture)

1.Applications

Application Android会同一个核心应用程序包一起发布,该应用程序包包括email客户端,SMS短消息程序,日历,地图,浏览器,联系人管理程序等。所有的应用程序都是用JAVA编写的。

2.Application FrameWork

开发者完全可以访问核心应用程序所使用的API框架。该应用程序架构用来简化组件软件的重用;任何一个应用程序都可以发布它的功能块并且任何其它的应用程序都可以使用其所发布的功能块(不过得遵循框架的安全性限制)。该应用程序重用机制使得组建可以被用户替换。

所有的应用程序都由一系列的服务和系统组成,包括:

  • 可扩展的视图(Views )可以用来建应用程序,包括列表(lists),网格(grids),文本框(text boxes),按钮(buttons),甚至包括一个可嵌入的web浏览器
  • 内容管理器(Content Providers )使得应用程序可以访问另一个应用程序的数据(如联系人数据库),或者共享它们自己的数据。
  • 资源管理器(Resource Manager)提供非代码资源的访问,如本地字符串,图形,和分层文件(layout files )。
  • 通知管理器(Notification Manager)使得应用程序可以在状态栏中显示客户通知信息。
  • 活动类管理器(Activity Manager)用来管理应用程序生命周期并提供常用的导航回退功能。

3.Libraries库

Android包括一个被 Android 系统中各种不同组件所使用的 C/C++ 库集。该库通过 Android 应用程序框架为开发者提供服务。以下是一些主要的核心库:

  • 系统 C 库:一个从 BSD 继承来的标准 C 系统函数库(libc ),专门为基于 embedded linux 的设备定制。
  • 媒体库:基于 PacketVideo OpenCORE;该库支持录放,并且可以录制许多流行的音频视频格式,还有静态印像文件包括MPEG4, H.264, MP3, AAC, AMR, JPG, PNG。
  • Surface Manager:对显示子系统的管理,并且为多个应用程序提供2D和3D图层的无缝融合。
  • LibWebCore:一个最新的web浏览器引擎用来支持Android浏览器和一个可嵌入的web视图。
  • SGL:一个内置的2D图形引擎。
  • 3D libraries:基于OpenGL ES 1.0 APIs实现;该库可以使用硬件3D加速(如果可用)或者使用高度优化的3D软加速。
  • FreeType:位图(bitmap)和向量(vector)字体显示。 SQLite 一个对于所有应用程序可用,功能强劲的轻型关系型数据库引擎。

4.Android Runtime

Android 包括了一个核心库,该核心库提供了JAVA编程语言核心库的大多数功能。

每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例。Dalvik是针对于同时高效地运行多个VMs来实现的。Dalvik虚拟机执行.dex的Dalvik可执行文件,该格式文件针对最小内存使用做了优化。该虚拟机是基于寄存器的,所有的类都经由JAVA汇编器编译,然后通过SDK中的dx工具转化成.dex格式由虚拟机执行。

Dalvik虚拟机依赖于linux的一些功能,比如线程机制和底层内存管理机制。

5.Linux内核

Android 的核心系统服务依赖于 Linux 2.6 内核,如安全性,内存管理,进程管理,网络协议栈和驱动模型。Linux 内核也同时作为硬件和软件堆栈之间的硬件抽象层。未来发展 老牌智能手机软件平台制造商Symbian发言人则表示:Google的android只不过是另一个linux,symbian对其它软件与其形成的竞争并不感到担心。除了北美之外,Symbian在其它地区智能手机市场都占有大部分市场份额。 与iPhone相似,Android采用WebKit浏览器引擎,具备触摸屏、高级图形显示和上网功能,用户能够在手机上查看电子邮件、搜索网址和观看视频节目等,比iPhone等其他手机更强调搜索功能,界面更强大,可以说是一种融入全部Web应用的单一平台。 

但其最震撼人心之处在于Android手机系统的开放性和服务免费。Android是一个对第三方软件完全开放的平台,开发者在为其开发程序时拥有更大的自由度,突破了iPhone等只能添加为数不多的固定软件的枷锁;同时与Windows Mobile、Symbian等厂商不同,Android操作系统免费向开发人员提供,这样可节省近三成成本。 Android项目目前正在从手机运营商、手机厂商、开发者和消费者那里获得大力支持。谷歌移动平台主管安迪·鲁宾(Andy Rubin)表示,与软件开发合作伙伴的密切接触正在进行中。从去年11月开始,谷歌开始向服务提供商、芯片厂商和手机销售商提供Android平台,并组建“开放手机联盟”,其成员超过30家。市场前景 Google手机于08年10月22日正式上市,与运营商捆绑的合约价为179美元(约合人民币1200元),现有的T-Mobile用户可以通过网络订购。在10月22日发布当天,将有22个国家和地区可以买到谷歌手机。在11月,将增至27个国家和地区。 

谷歌手机将只能在T-Mobile网络内使用,将会有SIM卡锁定限制。T-Mobile USA提供了两种流量和短信近曝光的moto sholes(也有人称之为moto tao)将搭载最新的android2.0操作系统包月计划。第一档为25美元,包括不限制的网络流量,以及一定数量的短信;第二档为35美元,包括不限制的网络流量和不限数量的短信。G1支持各种谷歌的服务,包括Gmail、Google Maps、YouTube、Google日历和Google Talk,内置Chrome Lite浏览器。使用这款手机也需要Gmail账号。 “我爱死我的G1了!”谷歌联合创始人拉里·佩奇(Larry Page)憧憬:“对于我来说,谷歌手机最激动人心的一点就是它的未来。它的功能很强,正如几年前的电脑一样。你可以上网,安装软件。” T-Mobile USA为德国电信旗下移动子公司,运营GSM/HSPA网络,拥有用户近3000万。此次发布的谷歌手机采用高通MSM7201A处理器,支持7.2Mbps下载速率,美国运营商3G网络设定的套餐速率一般可达1Mbps以上。MSM7201A为单芯片、双核,整合硬件加速多媒体功能、支持3D图形,300万像素的摄像功能可以扫描条形码,并且有GPS功能。 在美国四大移动运营商中,T-Mobile USA处于相对弱势的地位,不过T-Mobile在欧洲有更为强势的是CDMA EV-DO网络,而T-Mobile USA和苹果iPhone的独家运营商AT&T为GSM/HSPA网络,后者在2005年12月就推出了全球第一个HSDPA商用服务。T-Mobile USA今年5月方才在纽约推出了3G服务,目前已经在奥斯汀、巴尔的摩、波士顿、达拉斯、休斯敦、拉斯维加斯、迈阿密、明尼阿波利斯、凤凰城、波特兰、圣安东尼奥和圣地亚哥等12个城市增加了3G覆盖,公司计划年底前将3G覆盖的城市从目前的13个增加到27个,能够为其超过2/3的用户提供3G服务。

2.1.4 Android系统的四大组件

在Android系统中,为我们提供了四大基本组件,每个组件是一个视图,但是有些是可见的,有些是不可见的视图,像Activity,ContentProvider是可见的视图,Service和BroadcastReceiver是不可见的,它们只在系统的后台运行。下面分别介绍四大组件:

1.Activity 简介

在Android系统中Activity提供可视化的用户界面,一个Android应用通常由多个Activity组成。多个Activity组成了Activity栈(Stack),当前活动的Activity处于栈顶。Activity有自己的生命周期,由Android系统来控制。

2.Service 简介

顾名思义Service就是运行在后台的一种服务程序,一般很少和用户交互,因此没有可视化界面定义一个Service类比较简单,只要继承Service类,实现其生命周期中的方法就可以了。一个定义好的Service必须在AndroidManifest.xml配置文件注册,通过<service>元素声明才能使用.Service有自己的生命周期,我们可以调用startService()启动一个Service或者bindService()方法来绑定一个存在的Service。

3.Broadcast Receiver 简介

Broadcast Receiver 顾名思义广播接收器,它和事件处理机制类似,只不过事件处理机制是程序组件级别的(例如,某个按钮的单击事件),而广播事件处理机制是系统级别的。到目前为止我们可以使用Intent来启动一个程序组件,我们还可以通过使用sendBroadcast()方法来发起一个系统级别的事件广播来传递消息。我们可以在你的应用程序中实现Broadcast Receiver来监听和响应这些广播的Intent。

4.ContentProvider简介

Content Provider 用来保存和检索数据,并且使应用程序之间相互访问数据成为可能。它是跨应用程序共享数据的唯一方法。

Android 为常用的数据类型(如:音视频、图片和联系方式等)提供了大量的Content Provider。它们被定义在android.provider包下面。通过这样定义好的ContentProvider 我们可以方便的进行数据操作。当然我们必须拥有适当的权限。我们也可以自己来定ContentProvider共享我们的数据,方便用户的访问

2.2 搭建Android开发环境

任何事物要运行,都要有它的环境,Android也有它的环境才能够运行,下面介绍Android的开发环境配置。

搭建开发环境需要的软件:

  • 操作系统:Windows XP或Linux
  • 软件包:Android SDK(SoftwareDevelopment kit Java Development kit) 、ADT(AndroidDeveloopment Tool)
  • IDE环境:Eclipse IDE+ADT Eclipse3.3以上
  • JDK:Java Runtime Environment虚拟机 、(JDK)JavaDevelopment kit

安装步骤如下:

第一步:安装Java虚拟机sun-java6-jdk版本

第二步:安装Eclipse10.0工具官网http://www.eclipse.org/downloads
选择版本(图4.2):进行安装

第三步:安装Android SDK:首先要下载SDK,可以在这个网址下载http://developer.android.com/sdk,选择相应的系统进行安装

第四步:安装Android ADT插件
运行Eclipse,选择help->install new software 选择add,将会弹出一个框

点击OK,选择要安装的软件,占next,然后选择接受协议,直到安装成功,重启Eclipse软件,设置Android SDK Home,Window->refrence

在SDK location中输入SDK Tools路径:D:\android software\android-sdk-windows,点击OK这样Android环境就已经搭建成功了。

2.3 Android常用工具的使用

2.3.1 命令行的使用

  • 创建AndroidVirtual Devices(AVD)
  • 使用android listtarget命令列出当前可用的SDK版本
  • androidcreate avd -n <name> -t <targetID> [-<option> <value>]…
  • 模拟器(Emulator)的使用
  • 启动和停止模拟器
  • emulator-avd <avd_name>
  • AndroidDebug Bridge(ADB)的使用
  • 查询当前模拟器实例数量
  • adbdevices
  • 本地机器和模拟器之间相互拷贝文件
  • D:>adbpush d:\test.txt /sdcard/
  • D:>adbpull /sdcard/test.txt d:/
  • 安装apk应用程序
  • adbpush d:\test.apk /sdcard/
  • adbinstall test.apk
  • 使用shell命令
  • 在DOS命令行输入adb shell 便进入shell命令行了
  • 可以使用exit退出shell

2.3.2 Dalvik Debug Monitor Service (DDMS)的使用

在DOS命令窗口,输入ddms会弹出如下图所示界面,Android编辑工具的可视化界面(图3.6)

2.4 Android音乐播放器的工程

2.4.1 Android项目

  • Android的四大基本组件:Activity(活动),Service(服务),BroadcastReceiver(广播),ContentProvider(内容提供者),各组件之间要进行切换需要一个意图或企图Intent类,通过启动StartIntent()方法来使各组件进行跳转。
  • Android的五大布局方式:LinearLayout(线性布局) FrameLayout(帧布局) TableLayout(表格布局) AbsoluteLayout(绝对布局) RelativeLayout(相对布局),五种布局方式可以相互嵌套,Android各种漂亮的界面都是通过嵌套布局而实现的。
  • Android的线程,以及线程之间通信的中介:Handler类。
  • Android数据库:在第三章已经介绍过了。这里不再介绍。
  • Android配置文件:AndroidManifest.Xml及res资源文件中各种属性 布局方式 引用的资源等。

Android系统将插件ADT集成到了Eclipse工具上,因此,一个Android程序启动后,系统会启动一个模拟器(Emulator)(图3.7),该模拟器是一款手机板的样式,拥有手机硬件的基本操作。我们也可以将右边的键盘通过代码属性设置将其隐藏,界面的大小可自由设定。

2.4.2 Android工程程序结构

Android工程基本结构目录包括:src (源代码)、gen(Android系统自动生成的常量)、Res(资源文件):主要存放程序界面的布局配置(.xml)文件和图片资源。AndroidMainfes.xml 是四大组件的驱动配置文件,有它的存在,Android程序的四大组件才可以正常的跳转。Android资源的类型和布局(图3.7)

下图2.8.1 为一个Android工程所必须的结构。

2.4.3 AndroidManifest.xml文件

Android系统的任何一个程序启动都需要AndroidManifest.xml来启动程序,任何一个新建的工程目录都会自动生成一个AndroidManifest.xml文件,此配置文件是整个程序能够正常运行的核心,它里面包含了Android SDK的版本,程序运行的默认Activity,当程序中的任何一个组件触发事件后,系统都会自动的去AndroidManifest.xml中寻找标识来作出相应的操作。任何一个AndroidManifest.xml文件的格式都应为:

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <manifest >
  3. <application >
  4. <activity >
  5. <intent-filter>
  6. <action/><category/>
  7. </intent-filter>
  8. </activity>
  9. </application>
  10. <uses-sdk /><uses-permission />
  11. </manifest>

Android系统有一个编码的规定,支持的编码是”utf-8”,当程序中出现乱码是,我们须将其编码格式转化为”utf-8”.在 AndroidManifest.xml中会在第一行声明一句:

  1. <?xmlversion="1.0" encoding="utf-8"?>

这是该系统支持的版本和编码。在第二行定义了我们需要使用的架构,该架构来自xmlns:android=”http://schemas.android.com/apk/res/android

xmlns(XMLnamespace)是一个命名空间,它就像一条河的源头一样能让我们找到系统架构,每一个配置文件必须有这个xmlns,否则程序中的所使用的所有资源将无法找到。

在application元素我们定义:

  1. android:icon="@drawable/icon" android:label="@string/app_name"

其中,android:icon是程序在手机中显示的图片,我们运用@drawable/icon表示了对res/drawable目录下的icon.png的引用。@string/app_name表示了对res/value目录下string.xml中定义的app_name参数的引用。

这是系统确定的首先要启动的Activity是PlayRackActivity。

在intent-filter选项中,有action和category等等属性,我们需要定义action的值为android.intent.action.MAIN,category的值为android.intent.category.LAUNCHER,它们是系统的值,程序在解析到这些常用后就可以确定首先要启动的Activity。当我们需要通过一个组件触发另一个组件时,我们将设定action和category的其它属性值,系统会根据我们设定的属性值去AndroidManifest.Xml的application 中寻找标识,任何一个Activity的action和category是唯一,所以程序在任何时候都能唯一启动一个Activity,这样,不同的Activity之间的跳转就实现了。

在AndroidManifest.xml中有一个根结点\<uses-sdk\>,它是我们需要定义的ADT版本,例如我们将其值设定为android:minSdkVersion=”8”,则表示此Android工程所用的版本为17。

如果我们需要对网络进行访问,比如打开一个网页,刚我还需要设置一个网络访问权限uses-permission,将其的值设置为android:name=”android.permission.INTERNET,我们就可以访问网络了。当然uses-permission还有很多其它的权限,例如GPS定位权限,浏览器数据存取权限com.android.browser.permission.READ_HISTORY_BOOKMARKS等等。

当程序的任何一个组件要用到时,都必须在AndroidManifest.xml文件中声明。四大组件要使用前都需要声明,其声明方式如下:

  1. <service></service>
  2. <provider></provider>
  3. <activity></activity>
  4. <receiver></receiver>

其中声明provider时还需要声明其授权 authorities。每个组件里面还有很多的属性,会根据程序的具体需要定义不同的属性。过滤器intent-filter 有两种启动方式来启动界面:

1.显示方式

显示方式是在代码中的直接启动组件,启动时会声明Intent,在它的构造方法Intent(组件1,组件2)中直接指定一个组件的名字,然后调用方法startIntent(intent)以启动指定的组件。

2.隐式方式

隐式方式是通过过滤器来过滤完成的,启动的组件必须满足action和category的条件才能够启动该组件。这些属性是在AndroidManifest.Xml文件中声明的。两种启动方式都可以通过程序setAction(ACTION常量)和startActivity(intent)或配置文件两种方式来实现组件的跳转。

第三章 系统需求分析

3.1 功能需求(用例图分析)

根据项目的目标,我们可获得项目系统的基本需求,以下从不同角度来描述系统的需求,并且使用用例图来描述,系统的功能需求,我们分成四部分来概括,即播放器的基本控制需要,播放列表管理需求,播放器友好性需求和播放器扩展卡需求。以下分别描述:

3.1.1 播放器的基本控制需求

3.1.2 播放清单列表管理需求

当用户选中列表中某一项歌曲,就有的需求:

3.1.3 播放友好性需求

3.2 系统结构图

音乐播放器的系统流程图(图3.5.1)。

3.3 系统界面需求

播放器界面要求布局合理,颜色舒适,控制按钮友好,为了减少开发工程量,图片素材多数为公司项目素材(图2.6)。

3.4 系统性能需求

根据Android手机系统要求无响应时间为5秒,所以就有如下性能要求:

  • 当要求歌曲播放时,程序响应时间最长不能超过5秒
  • 当要求歌曲暂停时,程序响应时间最长不能超过5秒
  • 当要求歌曲停止时,程序响应时间最长不能超过5秒
  • 当要求歌曲上/下一首时,程序响应时间最长不能超过5秒
  • 当要求进行清单列表时,程序响应时间最长不能超过5秒

3.5 运行环境需求

  • 操作系统:Android手机基于Linux操作系统
  • 支持环境:Android 4.0.1版本
  • 开发环境:Eclipse 10.0

第四章 播放器系统功能详细设计

4.1 音乐播放器主界面功能实现

4.1.1 播放器主界面

Android的每一个可视化界面,都有其的唯一的布局配置文件,该文件里面有各种布局方式,和各种资源文件如图像,文字,颜色的引用,程序在运行时,可以通过代码对各配置文件进行读取。这样就可以形成不同的可视化界面和炫丽的效果。播放器主界面是一个Activity,Android工程在每个activity启动的时候会首先执行Oncreate()方法,如下代码:

  1. @Override
  2. protected void onCreate(Bundle savedInstanceState) {
  3. requestWindowFeature(Window.FEATURE_NO_TITLE);
  4. super.onCreate(savedInstanceState);
  5. setContentView(R.layout.main);
  6. }

该方法主要执行界面的初始化操作,Activity有个设置布局的方法:Context.setContentView(layoutResID),参数为资源ID,该ID在工程目录res/layout下,主界面布局文件名为main。

下面为main.xml布局文件代码结构如下:

在播放界面中,歌词显示为居中,实现方法代码如下:

  1. <LinearLayout android:orientation="horizontal"
  2. android:gravity="center"android:layout_height="wrap_content" android:layout_width="fill_parent">
  3. <TextView android:layout_height="wrap_content"
  4. android:textColor="#8deeee" android:id="@+id/lrcText"
  5. android:layout_width="wrap_content"></TextView>
  6. </LinearLayout>

属性:

  • orientation=”horizontal”:此线性布局的子部件为水平方式布局
  • Layout_width=”fill_content”:布局的宽度为填满父布局
  • Layout_height=”wrap_content”:布局的高度子由窗体的大小决定
  • 窗体TextView 文本 :textColor=”8deeee”设置文本显示的颜色RGB为”8deeee”
  • TextSize:为默认大小

4.1.2 播放界面音轨的实现

不管是从界面外观还是从功能上,系统自带的SeekBar往往不能满足用户的需要。所以我在这里自定义了一个音轨SeekBar,在widget_main.xml配置文件中,SeekBar的代码如下:

通过这些属性设置,就自定义一个如上图一的SeekBar音轨。

播放器最重要的一部分就是音轨与歌曲进度同步的实现。音轨设置了两个TextView用来显示当前歌曲播放的进度时间和歌曲的长度(图4.3)。

4.1.3 播放器播放、暂停、停止等功能

如图4.4所示:各按钮水平放置,用的是布局中的线性布局LinearLayout,用方法setOrientation(horizontal);将其设置为水平。LinearLayout中依次放置播放,暂停,停止,上、下一曲按钮属性。配置文件代码结构如下:

代码算法如下:

4.2 播放列表功能

播放列表界面(如图4.5)

布局层次关系如下:

在Android里面,有一个视图叫ListView,其特点是一个有BaseAdapter的属性,从下到下,或从左到右的显示方式。系统默认的方式每一行只显示一个TextView,本播放列表实现了自定义的方式,刚ListView的每一行显示一个音乐图片和一个歌曲名字。视图可以显示在Activity上,所以就可以看到我们想要的歌曲列表界面。

4.3 菜单功能

菜单界面(如图5.7)

4.3.1 菜单界面

在menu.Xml配置文件中。

4.3.2 菜单功能实现

菜单有5个功能:设置,搜索,进入眨眼模式,关于,退出。各功能都是通过鼠标点击或触屏触发事件。

第五章 结 论

  • 通过对Android手机平台的音乐播放器软件的开发,使我对Android音乐播放器系统的整体设计有一个深入的了解,对整个流程也会有一个清晰的认识。开发Android音乐播放器,要抓住开发的核心部分,音乐播放器大体由播放主界面、播放列表、菜单、播放设置、文件浏览、歌曲搜索六大核心组成,只要掌握了这六部分的开发,音乐播放器就能初具规模。而其它的功能都是在这六个功能的基础上去补充添加的,但是这是功能的确是必不可少的功能,否则就不能算是音乐播放器了。
  • 音乐播放器系统实现了播放器的基本功能:播放,暂停、停止、上/下一首、音量调节、歌词显示、播放模式、歌曲搜索、文件浏览器、播放列表查询等功能。运用的系统平台是现今最热门的Android系统,是一个开源的基于Linux系统的手机平台。是以Java语言编写+SQLite数据库支持+SharePreference配置文件的组合方式进行数据管理。实现了音乐播放器的系统编程。
  • 本次程序设计,对播放器的系统结构框架做了精心的构思与设计,采用主要开发工具是Eclipse3.5+Java语言的支持,Android DevelopmentTool的插件,和Android SDK2.1版本的全面结合,才使整个音乐播放器系统得以实现。
  • 总之,经过几个月的Android系统技术知识的学习和对音乐播放器的构思与设计,使我对Android系统有了一定的了解,让我对Android系统上的开发流程和开发模式有了深入的了解,这对我以后的Android项目开发有很大的帮助。

在此论文抒写过程中,我还要感谢我的软件工程的老师给我的支持和建议。让我能顺利的完成本次论文。

参考文献

[1] 高昂著.支持动态语言的Android平台[M].北京:人民邮电出版社,2009-05-07.

[2] eoe.Android开发社区.http://www.eoeandroid.com/. 2010-04-10.

[3] JavaEye论坛.http://www.javaeye.com/forums. 2010-04-15.

[4] Android API文档.http://androidappdocs.appspot.com/index.html. 2010-04-10. http://wghjay.javaeye.com/blog/519955.2009-11-18.

上传的附件 cloud_download 基于Android的音乐播放器.7z ( 21.58mb, 252次下载 )
error_outline 下载需要15点积分

发送私信

我连自己都猜不透,怎敢奢求别人来懂我

5
文章数
13
评论数
eject