欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 研究报告>
  • 工作总结>
  • 合同范本>
  • 心得体会>
  • 工作报告>
  • 党团相关>
  • 幼儿/小学教育>
  • 高等教育>
  • 经济/贸易/财会>
  • 建筑/环境>
  • 金融/证券>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > PDF文档下载  

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

    • 资源ID:5433421       资源大小:252.87KB        全文页数:8页
    • 资源格式: PDF        下载积分:4
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录   微博登录  
    二维码
    微信扫一扫登录
    下载资源需要4
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

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

    基于 Android 手机音乐播放器开发与实现 柏云飞 赣州农业学校,江西赣州 341000 摘要:研究了在Android 手机平台下,音乐播放器的设计与开发过程。可播放wav、mp3 等常见格式 的音频文件,同时具备控制音乐的播放、暂停、停止、视觉外观、音量调节、播放列表和文件的管理 操作等多种播放功能,同时做到软件的用户界面友好美观,并且使用简单,合乎用户操作习惯。在保 证以上功能的基础上,力争尽量节省手机资源开销,保证手机用户使用的便捷性和可靠性。 关键词: Android ;手机应用;音乐播放器 中图分类号: TN929文献标识码: A文章编号: 1009-3044(2013)28-6406-05 2007 年,谷歌公司发布了以Linux 为内核的移动设备操作系统Android 。Android 操作系统最初由 Andy Rubin 开发 1 ,主要支持手机。2005 年 8 月由Google 收购注资。随后Google 以 Apache 开源许可 证的授权方式,发布了Android 的源代码。 2008 年 10 月,谷歌公司发布了第一款基于Android 操作系统 的手机。随着不断完善和改进,Android 操作系统已经逐渐应用到平板电脑及其他领域上,如电视机顶盒、 数字摄像机及游戏机等设备上。2011 年第一季度,Android 系统在全球的移动设备市场份额首次超过 Symbian 系统,全球排名第一。2012 年 11 月数据显示, Android 占据全球移动设备操作系统市场76% 的份 额,其中在中国市场的占有率为90% 。 Android 系统采用软件叠层(software stack)的架构,被划分为三 部分 1 。底层部分为Linux 内核,它提供操作系统的基础功能,而上层应用则由其它公司自行开发,其中一 部分应用系统用Java 2 编写。目前市场上已有不少比较成熟的智能机操作系统,而占据市场主要份额的有如 下几款:苹果公司的IOS(Mac OS X) 操作系统,诺基亚手机的Symbian OS 操作系统, Microsoft 的 Win? dows Phone 7 操作系统, Google 公司的Android 操作系统作为新生的产物,更是以其优越的开源性已被 广大手机厂商采用,Android系统的开放性深受广大开发者和用户及第三方手机厂商的喜爱,也为其占据中 低高端市场提供了有力条件。 本文描述了基于Android 手机平台的音乐播放器开发,为Android 使用者提供更多的选择,尽量能够满 足用户个性化的要求,使用户的手机更加显得生动灵活,达到让用户真正的随时随地处于音乐的旋律中。 1 Android 结构组成 Android 操作系统主要有4 部分组成: 3 : Activity(活动 ) 、 Service(服务 ) 、 Broadcast Intent Receiver (广播 ) 、 Content Provider(数据提供者) 。虽然系统由以上部分组,但这并不意味着每一个 Android 应用程序都需要这四个模块,是否需要以上各部分主要由软件业务来决定。在某些时候,只需要这 四种中的几个组合成相关的应用。各个组件模块之间要进行切换必须通过一个意图Intent 类来实现, StartIntent()方法主要用来在各组件之间进行跳转。Android 布局如同是一个承载组件的容器,组件不同 放置方式决定了应用界面是否友好,便于操作。因此,Android 布局是系统开发中的一个重要环节,在 Android 软件开发过程中,主要有五种布局方式,它们分别为:FrameLayout( 框架布局 ),LinearLayout(线 性布局 ),AbsoluteLayout(绝对布局 ),RelativeLayout(相对布局 ),TableLayout(表格布局 ) 。以上布局方式 可以相互嵌套,以便组成各种不同的应界面。线程也是Android 系统的一个重组成部门,Android 级线程 之间通信主要通过中介类Handler 来实现。 SQLite 数据库是Android 自带的一个小型的数据库,由于它占 用资源非常低,所需内存非常小,一般仅需要几百K 的内存就够用,适合在Android 移动平台或嵌入式设 备中使用。 在集成开发工具Eclipse 上集成了插件ADT ,以便用于Android 系统的软件开发。当一个Android 程序 启动时, Eclipse 会启动一个模拟器,模拟器用于模拟当前手机硬件基本功能和相关的基本操作。 1.1 基于 Android 开发的软件目录结构 Android 工程目录基本结构 4 主要包括: src (程序源代码)、gen 目录、 assets (系统所用到的如mp3 、 视 频 类 等 文 件 ) 、 Res( 资 源 文 件 ) : 主 要 存 放 程 序 界 面 的 布 局 配 置 (.xml)文 件 和 图 片 资 源 。 AndroidMainfest.xml 是四大组建的驱动配置文件,有它的存在,Android程序的四大组件才可以正常的跳 转。在 gen 目录中有个R.java 文件,通过它可以快速定位需要的资源,同时编译器检查R.java 列表中的资 源是否被使用到,如果没有被用到,该资源将不被编译到软件中,以便减少应用程序占用的空间。 1.2 AndroidMainfest.xml 文件 AndroidMainfest.xml 项目中的总配置文件,用于记录程序中所使用的各种组件。每个Android 应用系 统都要使用AndroidMain ? fest.xml 来引导启动,AndroidMainfest.xml 文件由新建的工程项目都会自动生 成,它也是整个应用系统能够正常运行的核心,其中包含了Android SDK 的版本。 2 系统具体实现 2.1 系统功能图 本系统的主要功能有播放音乐、搜索音乐、解析歌词、接受广播。其中播放音乐主要包括的子功能有上一 首、下一首、暂停功能、播放功能,搜索音乐则包括搜索媒体歌曲和媒体歌词,解析歌词则就是解析LRC 歌 词,接受广播则是进行播放服务和接收音乐服务。系统的整体结构图如图1 所示。 图 1 系统功能图 图 2 播放器 E-R图 2.2 音乐播放器E-R 图 音乐播放器的内容主要组成是播放列表、歌曲数目。而播放列表的属性是歌曲的名字和编号,由歌曲组 成,歌曲的属性则包括曲目号码、大小、艺术家、专辑、歌曲名字、发行库、流派等,如图2 所示: 2.3 数据库连接 Android 自带 SQLite 数据库,是用C 语言编写的开源嵌入式数据库,支持SQL92 标准,同时可运行在 所有主流操作系统上运行。SQLite 运行资源占用少、性能良好并且管理几乎零成本,因引在嵌入式数据库 开发方面应用非常广泛。如Android 、iPhone 都内置了SQLite 数据库。当编写相关数据库引代码后, Android 会在 /data/data/PACKAGE_NAME/databases 目录下生成一个“music. db”的数据库文件。在本 文中,定义MusicDBHelper extends SQLiteOpenHelper 类实现数据的基本操作。当需要打开一个数据库连 接 并 获 得 数 据 库 对 象 时 , 首 先 根 据MusicDBHelper 创 建 一 个 辅 助 对 象 , 然 后 调 用 该 对 象 的 getWritableDatabase 或 getReadableData? base 方法获得SQLiteDatabase 对象。 3 播放器系统功能详细设计及编码 3.1 音乐播放器主界面功能实现 3.1.1播放器主界面 在Android 应 用 系 统 中 , 用 户 界 面 框 架 ( Android UI Framework ) 使 用 了MVC ( Model-View- Controller)模型,即处理用户输入的控制器(Controller)、显示用户界面及应用程序的视图(View), 和保存数据的模型(Model)。用户界面通过布局配置文件进行布局,该文件包括各种布局方式和各种资源 文件,如图像、文字、颜色等。程序通过代码对各种配置数据进行操作,以便形成不同的可视化用户界面和 绚丽的视觉效果。播放器主界面由一个Activity 组成 5 ,每当Android 应用程序启动时,activity 首先执 行OnCreate() 方法,通过该方法执行用户界面的初始化操作。Activity 有个专门用于布局的方法: Context.setContentView(String musiclayoutResID),参数为要加载的资源ID,该资源存放在工程目录 res/layout 下,在本文中,用户主界面布局文件被命名为music_rack,下面为music-rack.xml 布局文件代 码结构如下: /按照绝对坐标 定义布局 在本文中,通过绝对布局里嵌套两种线性布局和勾勒了该音 乐播放器的用户界面轮廓,其中实现了歌曲的标题和歌曲名的显示位置, 布局设置布局的来显示歌曲标题的绝对坐标位置。在每个布局内可以设置多 个 Widget (窗体组件),如: 、 等。每个窗体组件内可以有多种属性,用来设置 该窗体组件的坐标、大小、背景和颜色等参数。在该音乐播放器的用户界面中,歌词显示为居中,下面是歌 词的显示的实现代码: 3.1.2 播放界面音轨的实现 在 Android 系统中,自带有播放音轨的组件,但该组件不能从外观界面和从功能上考满足用户的实际需 求,为了实现用户的使用要求,因此本文自定义一个Lookfor 音轨进度条,其实现的代码如下: 上面的参数中android:thumb=“drawable/media_player_progress_button“为加载音轨进度条的图片资 源。android:progressDraw?able=“drawable/seekbar_img“为进度条引用的风格。 android:layout_width=“fill_parent“指定进度条的宽度为充 满整个屏幕,而an ? droid:layout_height=“wrap_content“指定进度条的高度为适中,根据显示所需的大小进行变化。 3.1.3 播放器播放、暂停、停止等功能实现 在 Android 操作系统中,已经封装了一个命名为MediaPlayer 的音乐播放接口 6 ,该接口在执行时需要 一个数据源。在本文中播放的功能主要分两部分实现:首先执行开始按钮的监听操作和通过intent 调用歌 曲信息;再调用play()方法进行播放。同时可在MusicPlayer 中发出音乐调用pause() 暂停或调用stop() 停 止的事件。 在 MusicPlayerService 中接受 Intent 中信息,根据信息的内容通过定义onStart(Intent intent, int startId)实现开始播放、暂停、停止等操作。 在监听器中创建一个Intent 对象,当操作发生后由MusicPlayer 跳转到MusicPlayerService,然后读 取歌曲文件的相关信息并压入Intent 中,再传递到service 中。当执行播放操作时,首先获取要播放的歌 曲信息如:路径和歌曲名等信息,然后调用mediaplayer接口读取数据,并开始播放。当执行播放、暂停、 停止等功能时,则只需根据相关指令进行操作即可,不需要再进行数据的读取。 3.2 播放列表的实现 播放器的播放列表主要包括歌曲名字、演唱者、歌曲时间,播放列表配置文件框架结构主要如下所示: 在以上配置文件中,TextView 用于定义每一个文本框,显示歌曲的名字和演唱者以及时间。而播放列表 的功能通过调用自定义方法getMusicView(int pos, View conView, ViewGroup viewParent)来实现。该方 法收到从存储卡中读取歌曲返回的信息后,以列表 的形式显示出来,当用户打开列表时会自动搜索本地的歌曲文件,并显示在列表中,当本地没有歌曲文件 时,则提示列表为空。 3.3 菜单功能 在菜单功能中,该文只设置了退出选项,旨在减少程序代码的冗余,程序中的MusicMenu.java 设置一个 List容器,用于存放String 类型的数据,如menu.add(0, ITEM, 0, “退出 “), 然后通过 intent.setAction(MUSIC_SERVICE) 传递到 MusicPlayerService 中去。 3.4 手机扩展卡的访问 为了更好的管理音乐文件,该文专门开发了了文件浏览功能。当打开音乐文件浏览器时,可以显示文件 的目录结构、歌曲文件的文件名和文件图标等信息。对于每可查看得到的文件,都可对其进行文件管理操 作。因为本文的文件浏览功能是专为播放器操作歌曲而设计的,因此通过该文件浏览器只能查看和操作音乐 文件。在主菜单界面上,选择新增选项进入到文件浏览器,或者当播放列表为空时,会提示用户进入文件浏 览器新增歌曲。代码实现如下所示: public void querySdcardMusicInfo() if(_ids = null) return; myCur = getContentResolver().query( /查询存储卡内的歌曲信息 MediaStore.Audio.Media. EXTERNAL_CONTEN T_URI, new String MediaStore.Audio.Media. TITLE ,/歌曲标题 MediaStore.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(“.“); System.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 所示,即为播放器的主界面,主要由歌曲名字,歌手头像、歌词、进度条和各种播放功能组 成: 图 3 播放器主界面图 4 本款软件的进度条 3.5.1 播放界面音轨的实现 由于系统的Seekbar 8 通常很难满足用户的功能和感观需求,因此本文定义了一个音轨进度条。如图4 所示。该进度直观明了,也便于用户操作使用。 4 结论 基于Android 平台的手机音乐播放器,希望能够为用户提供一款节约手机资源,实用性强的手机音乐播 放器。在本款软件中,减少了很多不必要的功能设置,避免了界面花哨、功能庞大而带来的浪费资源的问 题,所以较大的提供了软件的实用性,希望能够得到较为广泛的应用。在本次软件的开发过程中,从最初的 Android 开发环境搭建开始学习,因为ADT 的插件要在Eclipse 中连线到国外在线安装升级,所以这一部分 相对消耗的时间较长,但是过程也比较简单。然后就是对Android 基本框架的学习,以及熟悉 Android 的层 次结构,并要掌握常用的配置属性。 参考文献: 1独立网页 .Android. http:/baike.baidu.com/view/1241829.htm. 百度百科 .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).

    注意事项

    本文(基于Android手机音乐播放器开发与实现_柏云飞分析.pdf)为本站会员(白大夫)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




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

    三一文库
    收起
    展开