基于Android手机音乐播放器开发与实现_柏云飞分析.pdf

上传人:白大夫 文档编号:5433421 上传时间:2020-05-09 格式:PDF 页数:8 大小:252.87KB
返回 下载 相关 举报
基于Android手机音乐播放器开发与实现_柏云飞分析.pdf_第1页
第1页 / 共8页
基于Android手机音乐播放器开发与实现_柏云飞分析.pdf_第2页
第2页 / 共8页
基于Android手机音乐播放器开发与实现_柏云飞分析.pdf_第3页
第3页 / 共8页
基于Android手机音乐播放器开发与实现_柏云飞分析.pdf_第4页
第4页 / 共8页
基于Android手机音乐播放器开发与实现_柏云飞分析.pdf_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《基于Android手机音乐播放器开发与实现_柏云飞分析.pdf》由会员分享,可在线阅读,更多相关《基于Android手机音乐播放器开发与实现_柏云飞分析.pdf(8页珍藏版)》请在三一文库上搜索。

1、基于 Android 手机音乐播放器开发与实现 柏云飞 赣州农业学校,江西赣州 341000 摘要:研究了在Android 手机平台下,音乐播放器的设计与开发过程。可播放wav、mp3 等常见格式 的音频文件,同时具备控制音乐的播放、暂停、停止、视觉外观、音量调节、播放列表和文件的管理 操作等多种播放功能,同时做到软件的用户界面友好美观,并且使用简单,合乎用户操作习惯。在保 证以上功能的基础上,力争尽量节省手机资源开销,保证手机用户使用的便捷性和可靠性。 关键词: Android ;手机应用;音乐播放器 中图分类号: TN929文献标识码: A文章编号: 1009-3044(2013)28-6

2、406-05 2007 年,谷歌公司发布了以Linux 为内核的移动设备操作系统Android 。Android 操作系统最初由 Andy Rubin 开发 1 ,主要支持手机。2005 年 8 月由Google 收购注资。随后Google 以 Apache 开源许可 证的授权方式,发布了Android 的源代码。 2008 年 10 月,谷歌公司发布了第一款基于Android 操作系统 的手机。随着不断完善和改进,Android 操作系统已经逐渐应用到平板电脑及其他领域上,如电视机顶盒、 数字摄像机及游戏机等设备上。2011 年第一季度,Android 系统在全球的移动设备市场份额首次超过

3、Symbian 系统,全球排名第一。2012 年 11 月数据显示, Android 占据全球移动设备操作系统市场76% 的份 额,其中在中国市场的占有率为90% 。 Android 系统采用软件叠层(software stack)的架构,被划分为三 部分 1 。底层部分为Linux 内核,它提供操作系统的基础功能,而上层应用则由其它公司自行开发,其中一 部分应用系统用Java 2 编写。目前市场上已有不少比较成熟的智能机操作系统,而占据市场主要份额的有如 下几款:苹果公司的IOS(Mac OS X) 操作系统,诺基亚手机的Symbian OS 操作系统, Microsoft 的 Win? d

4、ows Phone 7 操作系统, Google 公司的Android 操作系统作为新生的产物,更是以其优越的开源性已被 广大手机厂商采用,Android系统的开放性深受广大开发者和用户及第三方手机厂商的喜爱,也为其占据中 低高端市场提供了有力条件。 本文描述了基于Android 手机平台的音乐播放器开发,为Android 使用者提供更多的选择,尽量能够满 足用户个性化的要求,使用户的手机更加显得生动灵活,达到让用户真正的随时随地处于音乐的旋律中。 1 Android 结构组成 Android 操作系统主要有4 部分组成: 3 : Activity(活动 ) 、 Service(服务 ) 、

5、Broadcast Intent Receiver (广播 ) 、 Content Provider(数据提供者) 。虽然系统由以上部分组,但这并不意味着每一个 Android 应用程序都需要这四个模块,是否需要以上各部分主要由软件业务来决定。在某些时候,只需要这 四种中的几个组合成相关的应用。各个组件模块之间要进行切换必须通过一个意图Intent 类来实现, StartIntent()方法主要用来在各组件之间进行跳转。Android 布局如同是一个承载组件的容器,组件不同 放置方式决定了应用界面是否友好,便于操作。因此,Android 布局是系统开发中的一个重要环节,在 Android 软件

6、开发过程中,主要有五种布局方式,它们分别为:FrameLayout( 框架布局 ),LinearLayout(线 性布局 ),AbsoluteLayout(绝对布局 ),RelativeLayout(相对布局 ),TableLayout(表格布局 ) 。以上布局方式 可以相互嵌套,以便组成各种不同的应界面。线程也是Android 系统的一个重组成部门,Android 级线程 之间通信主要通过中介类Handler 来实现。 SQLite 数据库是Android 自带的一个小型的数据库,由于它占 用资源非常低,所需内存非常小,一般仅需要几百K 的内存就够用,适合在Android 移动平台或嵌入式设

7、 备中使用。 在集成开发工具Eclipse 上集成了插件ADT ,以便用于Android 系统的软件开发。当一个Android 程序 启动时, Eclipse 会启动一个模拟器,模拟器用于模拟当前手机硬件基本功能和相关的基本操作。 1.1 基于 Android 开发的软件目录结构 Android 工程目录基本结构 4 主要包括: src (程序源代码)、gen 目录、 assets (系统所用到的如mp3 、 视 频 类 等 文 件 ) 、 Res( 资 源 文 件 ) : 主 要 存 放 程 序 界 面 的 布 局 配 置 (.xml)文 件 和 图 片 资 源 。 AndroidMainf

8、est.xml 是四大组建的驱动配置文件,有它的存在,Android程序的四大组件才可以正常的跳 转。在 gen 目录中有个R.java 文件,通过它可以快速定位需要的资源,同时编译器检查R.java 列表中的资 源是否被使用到,如果没有被用到,该资源将不被编译到软件中,以便减少应用程序占用的空间。 1.2 AndroidMainfest.xml 文件 AndroidMainfest.xml 项目中的总配置文件,用于记录程序中所使用的各种组件。每个Android 应用系 统都要使用AndroidMain ? fest.xml 来引导启动,AndroidMainfest.xml 文件由新建的工程

9、项目都会自动生 成,它也是整个应用系统能够正常运行的核心,其中包含了Android SDK 的版本。 2 系统具体实现 2.1 系统功能图 本系统的主要功能有播放音乐、搜索音乐、解析歌词、接受广播。其中播放音乐主要包括的子功能有上一 首、下一首、暂停功能、播放功能,搜索音乐则包括搜索媒体歌曲和媒体歌词,解析歌词则就是解析LRC 歌 词,接受广播则是进行播放服务和接收音乐服务。系统的整体结构图如图1 所示。 图 1 系统功能图 图 2 播放器 E-R图 2.2 音乐播放器E-R 图 音乐播放器的内容主要组成是播放列表、歌曲数目。而播放列表的属性是歌曲的名字和编号,由歌曲组 成,歌曲的属性则包括曲

10、目号码、大小、艺术家、专辑、歌曲名字、发行库、流派等,如图2 所示: 2.3 数据库连接 Android 自带 SQLite 数据库,是用C 语言编写的开源嵌入式数据库,支持SQL92 标准,同时可运行在 所有主流操作系统上运行。SQLite 运行资源占用少、性能良好并且管理几乎零成本,因引在嵌入式数据库 开发方面应用非常广泛。如Android 、iPhone 都内置了SQLite 数据库。当编写相关数据库引代码后, Android 会在 /data/data/PACKAGE_NAME/databases 目录下生成一个“music. db”的数据库文件。在本 文中,定义MusicDBHelp

11、er extends SQLiteOpenHelper 类实现数据的基本操作。当需要打开一个数据库连 接 并 获 得 数 据 库 对 象 时 , 首 先 根 据MusicDBHelper 创 建 一 个 辅 助 对 象 , 然 后 调 用 该 对 象 的 getWritableDatabase 或 getReadableData? base 方法获得SQLiteDatabase 对象。 3 播放器系统功能详细设计及编码 3.1 音乐播放器主界面功能实现 3.1.1播放器主界面 在Android 应 用 系 统 中 , 用 户 界 面 框 架 ( Android UI Framework ) 使

12、 用 了MVC ( Model-View- Controller)模型,即处理用户输入的控制器(Controller)、显示用户界面及应用程序的视图(View), 和保存数据的模型(Model)。用户界面通过布局配置文件进行布局,该文件包括各种布局方式和各种资源 文件,如图像、文字、颜色等。程序通过代码对各种配置数据进行操作,以便形成不同的可视化用户界面和 绚丽的视觉效果。播放器主界面由一个Activity 组成 5 ,每当Android 应用程序启动时,activity 首先执 行OnCreate() 方法,通过该方法执行用户界面的初始化操作。Activity 有个专门用于布局的方法: Co

13、ntext.setContentView(String musiclayoutResID),参数为要加载的资源ID,该资源存放在工程目录 res/layout 下,在本文中,用户主界面布局文件被命名为music_rack,下面为music-rack.xml 布局文件代 码结构如下: /按照绝对坐标 定义布局 在本文中,通过绝对布局里嵌套两种线性布局和勾勒了该音 乐播放器的用户界面轮廓,其中实现了歌曲的标题和歌曲名的显示位置, 布局设置布局的来显示歌曲标题的绝对坐标位置。在每个布局内可以设置多 个 Widget (窗体组件),如: 、 等。每个窗体组件内可以有多种属性,用来设置 该窗体组件的坐标

14、、大小、背景和颜色等参数。在该音乐播放器的用户界面中,歌词显示为居中,下面是歌 词的显示的实现代码: 3.1.2 播放界面音轨的实现 在 Android 系统中,自带有播放音轨的组件,但该组件不能从外观界面和从功能上考满足用户的实际需 求,为了实现用户的使用要求,因此本文自定义一个Lookfor 音轨进度条,其实现的代码如下: 上面的参数中android:thumb=“drawable/media_player_progress_button“为加载音轨进度条的图片资 源。android:progressDraw?able=“drawable/seekbar_img“为进度条引用的风格。 an

15、droid:layout_width=“fill_parent“指定进度条的宽度为充 满整个屏幕,而an ? droid:layout_height=“wrap_content“指定进度条的高度为适中,根据显示所需的大小进行变化。 3.1.3 播放器播放、暂停、停止等功能实现 在 Android 操作系统中,已经封装了一个命名为MediaPlayer 的音乐播放接口 6 ,该接口在执行时需要 一个数据源。在本文中播放的功能主要分两部分实现:首先执行开始按钮的监听操作和通过intent 调用歌 曲信息;再调用play()方法进行播放。同时可在MusicPlayer 中发出音乐调用pause()

16、暂停或调用stop() 停 止的事件。 在 MusicPlayerService 中接受 Intent 中信息,根据信息的内容通过定义onStart(Intent intent, int startId)实现开始播放、暂停、停止等操作。 在监听器中创建一个Intent 对象,当操作发生后由MusicPlayer 跳转到MusicPlayerService,然后读 取歌曲文件的相关信息并压入Intent 中,再传递到service 中。当执行播放操作时,首先获取要播放的歌 曲信息如:路径和歌曲名等信息,然后调用mediaplayer接口读取数据,并开始播放。当执行播放、暂停、 停止等功能时,则只

17、需根据相关指令进行操作即可,不需要再进行数据的读取。 3.2 播放列表的实现 播放器的播放列表主要包括歌曲名字、演唱者、歌曲时间,播放列表配置文件框架结构主要如下所示: 在以上配置文件中,TextView 用于定义每一个文本框,显示歌曲的名字和演唱者以及时间。而播放列表 的功能通过调用自定义方法getMusicView(int pos, View conView, ViewGroup viewParent)来实现。该方 法收到从存储卡中读取歌曲返回的信息后,以列表 的形式显示出来,当用户打开列表时会自动搜索本地的歌曲文件,并显示在列表中,当本地没有歌曲文件 时,则提示列表为空。 3.3 菜单功

18、能 在菜单功能中,该文只设置了退出选项,旨在减少程序代码的冗余,程序中的MusicMenu.java 设置一个 List容器,用于存放String 类型的数据,如menu.add(0, ITEM, 0, “退出 “), 然后通过 intent.setAction(MUSIC_SERVICE) 传递到 MusicPlayerService 中去。 3.4 手机扩展卡的访问 为了更好的管理音乐文件,该文专门开发了了文件浏览功能。当打开音乐文件浏览器时,可以显示文件 的目录结构、歌曲文件的文件名和文件图标等信息。对于每可查看得到的文件,都可对其进行文件管理操 作。因为本文的文件浏览功能是专为播放器操

19、作歌曲而设计的,因此通过该文件浏览器只能查看和操作音乐 文件。在主菜单界面上,选择新增选项进入到文件浏览器,或者当播放列表为空时,会提示用户进入文件浏 览器新增歌曲。代码实现如下所示: public void querySdcardMusicInfo() if(_ids = null) return; myCur = getContentResolver().query( /查询存储卡内的歌曲信息 MediaStore.Audio.Media. EXTERNAL_CONTEN T_URI, new String MediaStore.Audio.Media. TITLE ,/歌曲标题 Medi

20、aStore.Audio.Media. DURATION ,/歌曲时 间 MediaStore.Audio.Media. ARTIST,/歌曲作者 MediaStore.Audio.Media. ALBUM , MediaStore.Audio.Media. DISPLAY_NAME , “_id=?“, new String _idsposition + “ , null); myCur.moveToFirst(); String name = myCur.getString(4).substring(0, myCur.getString(4).lastIndexOf(“.“); Syste

21、m.out.println(name); read(“/sdcard/“ + name + “.lrc“); 利用 Android 多媒体自带的存储方法进行数据的存储 7 ,这样可以较好的利用系统资源,其中 MediaStore.Audio.Media.TITLE 代表的查找歌曲标题,MediaStore.Audio.Media.DURATION 代表查找歌 曲的时间, MediaStore.Audio.Media.ARTIST 代表查找歌曲作者,MediaStore.Audio.Media.ALBUM,代表 查找歌曲所属的专辑。 3.5 仿真结果和性能测试 如下图 3 所示,即为播放器的主界

22、面,主要由歌曲名字,歌手头像、歌词、进度条和各种播放功能组 成: 图 3 播放器主界面图 4 本款软件的进度条 3.5.1 播放界面音轨的实现 由于系统的Seekbar 8 通常很难满足用户的功能和感观需求,因此本文定义了一个音轨进度条。如图4 所示。该进度直观明了,也便于用户操作使用。 4 结论 基于Android 平台的手机音乐播放器,希望能够为用户提供一款节约手机资源,实用性强的手机音乐播 放器。在本款软件中,减少了很多不必要的功能设置,避免了界面花哨、功能庞大而带来的浪费资源的问 题,所以较大的提供了软件的实用性,希望能够得到较为广泛的应用。在本次软件的开发过程中,从最初的 Andro

23、id 开发环境搭建开始学习,因为ADT 的插件要在Eclipse 中连线到国外在线安装升级,所以这一部分 相对消耗的时间较长,但是过程也比较简单。然后就是对Android 基本框架的学习,以及熟悉 Android 的层 次结构,并要掌握常用的配置属性。 参考文献: 1独立网页 .Android. http:/ 百度百科 .2013 2Bruce Eckel.Thinking In JavaM.英文第 4 版. 机械工业出版社,2007. 3高焕堂 .Android 应用框架原理与程式设计36 技M/OL. Google 公司 . 4马越 .Android 的架构与应用 D. 中国地质大学 ( 北京 ) 硕士学位论文. 5陈利强 . 基于 ARM 芯片的嵌入式图像处理平台开发与实现D. 华南理工大学硕士论文,2011. 6Haseman Chris. Android EssentialsM. Apress: the Experts Voice, 2008:156-160. 7DiMarzia Jerome. Android: A Programmers GuideM. McGraw-Hill, 2008:85-120. 8Skolnikoff E.B.Security and SanityJ.IEEE Spectrum,2005(4).

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1