1、 本科毕业论文(20 届)基于 Android 系统的音乐播放器的实现所在学院专业班级 计算机科学与技术学生姓名指导教师完成日期摘 要当今社会的生活节奏越来越快,随着硬件移动设备的越来越先进,人们对移动设备的要求也越来越高,从以前的追求技术到现在的追求视觉,因此,也逐步的提高了对系统的要求,本文主要是对 Android 系统上音乐播放器应用程序的设计与实现进行讨论。本论文的音乐播放器采用了 Android 开源系统技术,利用 Java 语言和 Eclipse 编辑工具对播放器进行编写,同时给出了详细的系统设计过程、部分界面图及主要功能运行流程图,本文还对开发过程中遇到的问题和解决方法进行了详细
2、的讨论,该音乐播放器集播放、暂停、停止、上一首、下一首、音量调节、歌词显示等功能于一体,性能良好,在Android 系统中能独立运行。该播放器还拥有对手机文件浏览器的访问功能、歌曲播放模式、以及歌词开闭状态的友好设置。关键词:Android;开源系统;音乐播放器AbstractThe pace of life in todays society, with more advanced hardware mobile devices for mobile devices, people more and more is also high, the requirements from the p
3、revious pursuit to pursue the visual technology, therefore, also gradually improve the system requirements, the paper main-ly is to take on a music player from system design and realization of the application is discussed. Take the system is an open source, it is based on the operating system, use t
4、he Linux music play-er of the Android open-source system technology, using the Java language and editing tools for players to Eclipse. Presents the detailed design process, the part of the system and the main func-tions of operation interface diagram of height, this paper also flow process problems
5、and solving methods are discussed in detail, and the music player episode, pause, stop and a, next, volume adjustment, lyrics display functions, such as performance is good, can operate independently in the Android system. This player has access to the file browser phone functions, songs and played
6、pattern, open and close condition of friendly words. Key Words:Android;open source system;music player目录第一章 绪论 11.1 选题的目的及意义 11.2 项目国内外现状 11.3 论文结构 1第二章 相关技术分析 32.1 Android 应用开发语言 32.2 Android 应用程序组件 32.3 Intent 介绍 42.4 AndroidManifest.xml 文件 4第三章 需求分析 63.1 软件目标 63.2 功能需求 63.3 系统界面需求 63.4 系统性能需求 63.
7、5 运行环境需求 7第四章 系统设计 84.1 设计思想 84.2 系统功能结构图 84.3 开发语言简介 94.3.1 Android 简介 94.3.2 Android 基本框架(Android Architecture ) 94.3.3 Android Features 特性 114.4 Android 音乐播放器的工程 114.4.1 Android 项目 114.4.2 Android 工程程序结构 124.4.3 AndroidManifest.xml 文件 12第五章 系统实现 155.1 播放列表 155.2 播放音乐 175.3 暂停 185.4 上一首 185.5 停止播放
8、 195.6 下一首 195.7 进度条改变 19第六章 总结与展望 216.1 总结 216.2 展望 21参考文献 22致 谢 231第 一 章 绪 论1.1 选题的目的及意义现今社会生活紧张,而欣赏音乐是其中最好的舒缓压力的方式之一,本项目的目的是开发一个可以播放主流音乐文件格式的播放器,本设计的实现的这主要功能是播放Mp3,Wav 多种格式的音乐文件,并且能够控制播放,暂停,停止,上一曲,下一曲,音量调节,视觉外观,播放列表和歌曲文件的管理操作等多种播放控制功能,界面简明,操作简单。 本项目是一款基于 Android 手机平台的音乐播放器,使 Android 手机拥有个性的多媒体播放器
9、,使手机显得更生动灵活化,与人们更为接近,让手机主人随时随地处于音乐视频的旋律之中。使人们的生活更加多样化。也使设计者更加熟练 Android 的技术和其它在市场上的特点.1.2 项目国内外现状当今社会的生活节奏越来越快,人们对手机的要求也越来越高,由于手机市场发展迅速,使得手机操作系统也出现了不同各类,现在的市场上主要有三个手机操作系统,Windows mobile,symbian,以及谷歌的 Android 操作系统,其中占有开放源代码优势的Android 系统有最大的发展前景。那么能否在手机上拥有自己编写的个性音乐播放器呢?能的,谷歌 Android 系统就能做到 1。本文的音乐播放器就
10、是基于谷歌 Android 手机平台的播放器。Android:是谷歌于 2007 年公布的开放式源代码手机系统,它的开放性就优于其它封闭式的手机系统,因此,任何人都可能根据自己的喜好将手机系统中的所有功能重新编写。这使得越来越多的人关注这个操作系统。本次作品音乐播放器就是基于 Android平台的 2。随着计算机的广泛运用,手机市场的迅速发展,各种音频视频资源也在网上广为流传,这些资源看似平常,但已经渐渐成为人们生活中必不可少的一部分了。于是各种手机播放器也紧跟着发展起来,但是很多播放器一味追求外观花哨,功能庞大,对用户的手机造成了很多资源浪费,比如 CPU,内存等的占用率过高,在用户需要多任
11、务操作时,受到了不小的影响,带来了许多不便,而对于大多数普通用户,许多功能用不上,形同虚设。针对以上各种弊端,选择了开发多语种的音频视频播放器,将各种性能优化,继承播放器的常用功能,满足一般用户(如听歌,看电影)的需求,除了能播放常见格式的语音视频文件,高级功能:还能播放 RMVB 格式的视频文件。此外,还能支持中文、英文等语言界面 3。1.3 论文结构第一章:绪论。主要是对该设计目的及国内外现状的描述。2第二章:相关技术分析。对该设计所用到的各项技术进行一下描述。第三章:需求分析。主要介绍该设计的系统,功能,界面,运行环境等需求。第四章:系统设计。介绍该系统的基本构架,设计思想,开发语言及
12、Android 工程等。第五章:系统实现。简要地描述该系统的运行过程及结果。第六章:总结与展望。对本次设计进行一次简要的总结。3第 二 章 相 关 技 术 分 析2.1 Android 应用开发语言 Java 是 Android 上的主流开发语言,各种支持也最完善。Android 发布的 API 和 SDK也都主要是面向 Java 开发人员的。我们的播放器实例也是用 Java 开发的 4。2.2 Android 应用程序组件 Android 应用程序最大的一个特点就是每个应用都由若干组件构成。而且各个应用程序的组件还可以相互调用(需要在代码中设置相应权限) 。例如假设我们需要编写一个内嵌有网页
13、的程序,那么我们无需亲自编写浏览器,而是可以直接调用系统自带的 Chrome Lite 浏览器组件 5。又如假设我们编写了两个应用程序,其中一个程序中有列表显示图片的组件,那么我们在另外一个应用程序中就可以使用该组件,而不需要再编写该功能。也就是说,不同于我们平常编写的程序,Android 的应用程序不是单一入口,而是可以从代码的不同位置启动。这就要依靠组件来实现。 Android 应用程序的组件有以下四种:(1)Activity 一个 activity 实际上表现出来的就是一个程序的界面。这个界面可能有许多种不同的形式,比如有列表形式,有文字形式,有图像格子等形式。一个应用程序也可能有不止一
14、个 activity。比如一个短消息的程序,需要有列表显示所有消息的 activity,还至少需要一个编辑短消息的 activity(界面) ,还可能需要设置、菜单等界面。每个 activity 都有一个默认的窗口用于绘制界面,一般情况下,它是充满全屏的,但是我们可以通过程序控制它,使其小于屏幕大小,也可以控制其浮动于其它窗口之上(如 Android 中的 Toast 信息) 。 Activity 中显示出来的内容其实是由 view 堆叠形成的,view 是由 View 基类派生出来的各种形式的界面元素,如 ListView,GridView 等等,通过组合这些 view,就形成了一个可见的
15、activity。我们可以用 Activity.setContentView()方法来设置一个activity 中所要显示的 view。(2)Service service 是一种没有界面的组件,同我们平常在 Windows 或 Linux 系统中所理解的“服务”一样,Android 上的 service 也是运行在后台的,运行时间可以从系统启动到系统关闭为止。对于许多应用程序来说,service 组件是至关重要的。以下载管理器为例,用户肯定希望能够在切换到其它程序时仍然在后台进行下载,这就需要用到 service 完成下载工作。而显示下载进度、已下载文件等信息则由 activity 完成,同
16、时我们还希望能控制下载过程,如停止、继续等,这就需要 activity 与 service 之间进行通信。 Android 允许 activity 连接到或者绑定到 service 上,这样就可以让用户在界面上控制后台 service 的行为。4(3)Broadcast receiver Broadcast 意为广播消息,Android 系统自身会发出许多广播消息,如电量不足,用户修改了全局设置等,各个应用程序也以向整个系统广播消息,如文件下载完毕等。 Broadcast receiver 则是程序中专门用来接收广播消息的组件,它没有界面显示,只负责监听、接收广播消息,然后根据程序逻辑,启动其
17、它组件去处理广播消息。它可以启动一个 activity 来同用户交互,也可以使用 NotificationManager 向用户发出通知。NitificationManager 的通知形式有许多种,比如说振动、响铃、闪 LED 灯,还可以在Android 界面的消息栏处显示信息。(4)Content provider content provider 是一种为其它应用程序提供数据的组件。这些数据可以保存在文件中,也可以保存在 SQLite 数据库中,还可以以其它任何有效的方式保存。ContentProvider 类为我们提供了一系列保存数据的方法供我们调用,可以很方便地存储数据。其它应用程序在
18、需要使用这些数据时,可以用 ContentResolver 对象,使用其中的方法。ContentResolver 可以与任何 content provider 交互,获取其中的数据。 只要需要某个组件,Android 就会尽力保证它的可用:如果该组件还没启动,就启动它,如果该组件所属的应用程序还没拥有一个进程,则为它启动一个进程,如果系统资源不足以容纳一个新的进程,则将后台的某个进程杀死为新进程腾出资源。以与任何 content provider 交互,获取其中的数据。 只要需要某个组件,Android 就会尽力保证它的可用:如果该组件还没启动,就启动它,如果该组件所属的应用程序还没拥有一个进
19、程,则为它启动一个进程,如果系统资源不足以容纳一个新的进程,则将后台的某个进程杀死为新进程腾出资源 6。2.3 Intent 介绍 所谓 Intent,就是一种运行时的绑定机制在应用程序运行时连接两个不同的组件。一般的应用是通过 Intent 向 Android 系统发出某种请求,然后 Android 系统会根据请求查询各个组件声明的 IntentFilter,找到需要的组件并运行它 7。 前面介绍的Activity、Service 及 BroadcastReceiver 组件之间的通信全部使用的是 Intent,但是各个组件使用的 Intent 机制不同。2.4 AndroidManifest.xml 文件 AndroidManifest.xml 是每一个应用都需要的文件, 位于应用根目录下,它 描述了程序包的全局变量, 包括暴露的应用组件(activities, services 等等)和为每个组件的实现类, 什么样的数据可以操作,以及在什么地方运行。 AndroidManifest.xml 文件是一个结构化的 XML 文件,它除了包含有各个组件的信息,还包括许多其它的信息,它的基本样式如下所示: