文/张琦
基于Android的音乐播放器设计与实现
文/张琦
本研究课题属于移动互联网平台软件开发领域,开发基于Android平台的手机音乐播放器应用软件。该应用软件页面友好,功能完善,支持MP3、WMA等多种格式的音频文件,主要实现文件扫描、暂停、歌词同步、上一首、下一首、音量调节、后台播放等功能,经过多轮测试,能够在安卓手机上稳定运行。
Android 音乐播放器 软件开发
作为一款运行在手机上的音乐播放器,必须具备良好的用户界面,且界面须简单明朗易于操作。因此音乐播放器的需求可以从音乐播放器的界面来划分。一般来讲,音乐播放器的需求主要分为主界面需求、播放界面需求。
本地列表按钮:可打开本地播放列表。应用程序从主界面切换到本地播放列表界面,可对列表中的音乐进行操作。
退出按钮:可退出音乐播放器。
上一曲/暂停/播放/下一曲按钮:用户点击上一曲或下一曲按钮,音乐播放器切换到上一曲或下一曲,并播放新的歌曲,用户点击播放或暂停按钮,音乐播放器播放或暂停。
歌词显示:播放音乐的同时可同步显示歌词。
一款优秀的手机软件需要做到良好的用户体验,主要体现在以下两点:
主界面和播放界面要做到界面设计友好,操作简单,设计合理,UI设计要能让软件变得有个性有品味,还要让软件的操作变得舒适、简单、自由,充分体现软件的定位和特点。
能够迅速且准确的处理用户的各种请求,各项功能切换要做到不延迟、不卡顿,处理业务逻辑较为复杂或响应时间较长的功能时,需要给出提示,让用户知道程序还在运行。
通过对音乐播放器各项功能的需求分析,主要包含以下功能:
首次运行软件时,软件将自动访问扩展卡中的音乐文件和LRC文件,然后将音乐文件的信息填充到播放列表中。当用户点击音乐时,音乐会自动播放,同时显示LRC歌词,用户也可以进行各种操作,比如上一曲、删除音乐等。
播放音乐时,可以同步显示歌词,拖拽进度条,歌词可做到实时跟随。
实现歌曲列表的选择,可以选择音乐列表,以及扫描内存、退出等功能。
根据需求分析,音乐播放器的功能由播放列表模块、歌词显示模块、功能菜单模块组成。
首次运行软件时,进入音乐播放列表界面,该界面使用了ListView列表控件、SeekBar音轨控件、ToggleButton按钮控件、TextView文本显示控件。
(1)本地列表的实现。此功能需要调用setCurrentList(int which)方法,当用户点击音乐列表上的音乐文件时,音乐自动播放。点击时需要调用OnclickListener方法,并在Oncreate()中注册此方法。
(2)上一曲/暂停/播放/下一曲功能。新建PlayerActivity类,在该类中对选中的MP3文件进行播放、暂停和停止操 作。 在LocalMP3ListActivity类 中 覆 写onListItemClick()方法,利用intent对象来传递得到的MP3文件(即MP3Info对象)到PlayerActivity类中。
在GeCiView中通过intent传递选中的按钮,启动PlayerService,实现在Service中执行播放、暂停和停止。然后编写对LRC文件进行处理的类LrcProcesser,将时间和歌词分别读取到一条单独的队列(Queue)中,再将两条队列放入List中。在DownloadServive的run()函数中实现对LRC文件的下载,同 时 在 WriteSdcard里 对 MP3Info中 的 getLocalMP3Info()方法中对lrcName和lrcSize进行相应设置。最后在PlayerActivity中,通过Handler控制run函数反复执行不断比较已经播放的时间与通过LrcProcesser处理后的时间队列中的时间,在合适的时间取出时间队列和歌词队列中对应的队列元素,将歌词队列显示在lrcText中,从而实现歌词的显示。
(1) 扫 描 功 能。 新 建 GetMusic类, 首 先 定 义array并 将 其 实 例 化,接 着 调 用 ArrayList
(2)退出功能。用户点击退出按键后可以退出音乐播放器。该模块在Activity中重写onKeyDown方法,可以监听到退出键,也可直接调用OnBackpress方法实现对退出键的监听。
本文操使用的是Android基于Windows的操作系统;支持Android2.2以上版本;开发环境是Eclipse 4.3.2和ADT 22.3。该播放器由由播放列表模块、歌词显示模块、功能菜单模块组成,能实现基本的上一曲/暂停/播放/下一曲功能,以及扫描、歌词显示功能,系统界面设计友好,操作简单,设计合理,符合音乐播放器的基本需求。
[1]毕广吉.Java程序设计实例教程[M].北京:冶金工业出版社,2010:34-45.
[2]陈璟,陈平华,李文亮.Android内核分析[J].广东:广东工业大学计算机学院,2012:112-115.
[3]高昂.支持动态语言的Android平台[M].北京:人民邮电出版社,2011:12-23.
作者单位 武汉华夏理工学院 湖北省武汉市 430223
张琦(1989-),男,硕士学位。研究方向为软件工程、数据库技术。