基于安卓的音乐播放器设计
作者:季玉茹 王德忠
来源:《电脑知识与技术》2013年第25期
        摘要:该文介绍一款基于安卓手机操作系统的音乐播放器。播放器的设计采用了Android开源系统技术,底层基于Linux操作系统,采用Java语言进行软件编写,并利用Google提供的Android API接口,实现了歌曲播放、歌词同步显示和一些常见的个性设置功能。
        关键词:Android;Linux;Java;音乐播放器
        中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2013)25-5641-02
        随着中国进入3G时代,整个软件行业也从互联网时代转移到移动互联网时代。由于手机硬件设备的飞速发展,人们对手机的要求也越来越高,手机操作系统也出现了不同种类,目前市场广泛流行的主要有三个手机操作系统:Windows mobile;Symbian;谷歌的Android操作系统。具有源代码开放优势的Android系统使用的最广泛也具有广大的发展前景。
        现今社会生活紧张,而欣赏音乐是其中最好的舒缓压力的方式之一。目前各种音频资源在网上广为流传,那么能否在手机上拥有自己编写的个性音乐播放器呢?由于谷歌的Android系统具有源代码开放,任何人都可以根据自己的喜好将手机系统中的所有功能重新编写。目前市场上各种手机播放器种类繁多,但是很多播放器一味追求外观花哨、功能庞大,对手机资源造成了很多不必要的浪费,用户需要操作多个任务时,受到了很大影响,带来了诸多不便,另外对于大多数普通用户,许多功能用不上,形同虚设。而本文开发的音乐播放器具有小巧轻便、功能实用的特点。
        1 相关技术
        1.1 JAVA
        Java语言是一种面向对象程序设计语言,可以撰写跨平台应用软件,现在Java平台已经嵌入了几乎所有的操作系统,广泛应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网[1]。
        1.2 Android
        Android是基于Linux内核的软件平台和操作系统,低层以Linux内核工作为基础,只提供基本功能,其他的应用软件则由各公司自行开发,以Java作为编写程序的一部分。Android程序运行时需要Android核心库集和Dalvik虚拟机,其中Android核心库集提供了Java语言核心库所能使用的绝大部分功能[2],Dalvik运行的是其专有的.dex文件,这个文件是通过DX工具将应用程序的所有.class文件编译成.dex文件的,这其中.class文件是JVM运行时的字节码文件[3]。
        2 系统设计
        2.1 系统功能需求
        音乐播放器的功能可以划分如下几个部分:
        1)本地音乐:主要是通过扫描SD卡获取卡上的音乐然后以列表的形式显示给用户,用户可以通过触摸某个歌曲的选项来进入播放歌曲界面,在此界面可实现基本的播放功能,提供歌词的显示、快进快退等功能;
        2)喜爱音乐:可以将自己喜欢的歌曲收藏到喜爱的歌曲,这样可以快速的选择自己爱
听的歌曲;
        3)在线音乐:通过GPRS或WIFI连接到网络,获取网络歌曲,得到最新流行音乐信息,并提供将音乐下载到本地的功能;
        4)系统设置:在这个模块可以手动设置音乐的播放模式,如:循环播放,单曲循环等;手动设置歌词的显示与否;扫描音乐,当SD卡中歌曲有变化的时候可以实现重新扫描生成歌曲列表。
        2.2 系统性能需求
        根据Android手机系统要求无响应时间为5秒,所以在歌曲播放、歌曲暂停、歌曲停止、歌曲上/下一首及清单列表时程序响应时间最长不能超过5秒。
        3 系统实现
        3.1当前播放歌曲界面
        这个界面显示出当前播放歌曲的名称,并且同步播放歌词,在歌曲显示信息下方放一个
拖动条,这个拖动条随着歌曲的播放自动的向前推进,直观的显示了歌曲播放了多少,而且当用户想跳过某一段或重复回听那一段的时候都可以直接通过拖动游标就可以实现,自由控制播放时间。控制条的下端是四个按钮分别实现上一曲、下一曲、播放/暂停、停止四个功能。
        Android系统为每个可视化界面都配置了一个布局文件,文件包含界面的布局方式和各种资源文件,通过编程实现对各配置文件进行读取,这样程序在运行时通过读取文件数据,就可以形成不同的可视化界面和炫丽的效果。
        播放器主界面是一个Activity,Android工程在每个Aactivity启动的时候会首先执行Oncreate()方法,该方法主要执行界面的初始化操作,Activity有个设置布局的方法:Context.setContentView(layoutResID),参数为资源ID,该Id在工程目录res/layout下[4]。通过设置布局下的实现标题和歌曲名的显示位置,每个布局内可以放置多种Widget(窗体部件),例如:等[5],通过设置Widget内的各种属性,可以改变Widget的坐标、大小、背景和颜。
        在具体功能实现代码中定义了play、pauseMp3、stopMp3方法分别实现歌曲的播放、
暂停、停止功能。move方法实现了滚动条的拖动调节播放进度的功能,getLrc方法获得歌词文件的对象,并通过该对象获得歌词在该界面显示。播放界面如图1所示。
        3.2播放模式设置
linux和安卓的关系        在长时间听歌的过程中涉及到一个播放顺序的问题,通过这个模块的设计可以自己手动选择设置歌曲的播放顺序,共设置了:单曲循环、列表循环、随机播放三项。界面如图2所示。
        如果很喜欢一首歌曲,那么就可以设置成单曲循环,这样歌曲就会一遍一遍的重复播放,而无需每次播放都要动手去选择。设置为列表循环就会按照既有的列表的顺序播放歌曲,当列表的最后一首歌曲播放完毕的时候,会自动的继续从列表开始的位置播放歌曲。
        时间长了听腻了既有的顺序,每次一首歌放完马上就能知道下面一首是什么,这时就可以选择随机播放,每一次你都无法预料到下一首歌要播放什么。
        外观设计,在布局里面嵌套着单选按钮 和开关按钮,里面嵌套着3个,即界面上显示的(单曲、循环、顺序)。
        后台服务程序中通过设置PlayerService.pattern属性来控制歌曲的播放顺序,当PlayerService等于0时为单曲循环,当PlayerService.pattern等于1时为列表循环,当PlayerService.pattern等于2时为随即播放[6]。
        组件有单项选择的功能,里面有多个项,只能选择其中一个。本款播放器有单曲、循环、随机播放等功能,MediaPlayer的负责监听歌曲是否正在播放或者是否播放完成,当歌曲播放完成时,会触发方法OnCompletionListener(),该方法可以处理歌曲播放完成后的操作[7]。
        5 结论
        本文设计的是一款基于Android手机操作系统的音乐播放器,具有小巧实用、功能简单、占用资源少的特点,使手机主人能随时随地处于音乐视频的旋律之中,使人们的生活更加多样化。
        参考文献:
        [1] 李刚.疯狂Java讲义[M].北京:电子工业出版社,2008:55-65.
        [2] 张基温.Java程序开发教程[M].北京:清华大学出版社,2002:233-240.
        [3] 刘甫迎,刘焱.Android移动编程实用教程[M].北京:电子工业出版社,2012:154-162.
        [4] 李刚.疯狂Android讲义[M].北京:电子工业出版社,2011:678-698.
        [5] 公磊,周聪.基于Android的移动终端应用程序开发与研究[J].计算机与现代化,2008(8):85-89.
        [6] 黄金国,罗震.手机应用程序开发架构的研究[J].计算机工程与科学,2010(11):141-144.
        [7] 张正政,林耀荣.基于Android系统的影音播放器开发[J].现代电子技术,2011(2):5-8.

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。