APP下载

基于Android平台的音乐播放器的实现

2018-12-08刘瑾

数字技术与应用 2018年8期

摘要:本系统基于Android操作平台,主要使用了Eclipse、SDK、ADT、SQLite等相关工具和技术。系统满足了用户对音乐播放操作的基本需求,具有搜索本地歌曲、暂停/播放、上一首、下一首、音轨拖动调节、音量控制、歌词同步显示、单曲循环或随机播放等功能。该系统响应时间短、界面布局简洁明了。

关键词:Android;音乐播放器;系统实现

中图分类号:TP311.52 文献标识码:A 文章编号:1007-9416(2018)08-0156-01

“听音乐”是众多人所喜爱用来缓解压力的一种休闲方式。现如今社会生活紧张,人们对音乐的需求也在激增。互联网上的音频与视频资源更是以爆发性的规模在增长。因此音乐播放器自然也就是大家对智能手机比较关注的一个部分。设计出一款实用性高、界面简洁明了、易于操作、内存占用较小的手机音乐播放器具有非常重要的现实意义[1]。

1 系统的分析和设计

1.1 需求分析

通过对音乐播放器的功能进行分析,确定该系统的需求如下[2-3]:

(1)播放和暂停,用户可以根据自身需要对音乐进行播放和暂停操作。(2)上一首和下一首,用户想换歌曲时,可以通过点击上/下一首按钮来控制对音乐的切换操作。(3)播放模式选择,用户可以选择单曲循环、随机播放、全部播放等模式的操作。(4)播放进度控制,用户可以通过点击或者拖动音轨来控制音乐进程,能够将音乐播放与音轨同步。(5)本地歌曲扫描,能够扫描手机SD卡上的音频文件,将获得的歌曲添加到音乐列表中去。(6)在线搜索,可以通过互联网提供的接口,搜索所需要的歌曲。(7)音量调节,根据自身需要,可以调节音乐播放器的音量。(8)艺术家列表模块,用户能够在该列表模块查看到自己下载歌曲的艺术家姓名。(9)显示歌词,在播放音乐的同时,能够在界面上显示所听音乐的歌词,可以实现歌词的展示与声音文件播放的同步。

1.2 数据库设计

通过对音乐播放器中的实体以及实体关系的分析,确定该系统的数据库由4张表构成,分别是user表,musictype表,music表,lyric表。

(1)用户表(user):该表主要用于存储用户基本信息,包括用户编号、用户名、密码、ip、注册时间、状态等字段。(2)歌曲类型表(musictype):该表主要用于存储歌曲的类型,包括歌曲编号、类型、所属的专辑等信息。(3)歌曲表(music):该表主要用于存储歌曲的基本信息,主要包括歌曲编号、歌曲名、路径等信息。(4)歌詞表(lyric):该表主要用来存储歌词的基本信息,包括歌曲编号、歌曲标题、作者、歌词等字段。

2 系统实现

2.1 播放器主页面

音乐播放器的主页面对应的类为MainActivity。在该类加载过程中首先执行onCreate()方法,在该方法中调用setContentView()方法指定要展示的R.layout.main1文件。当用户点击页面的Button按钮b1,触发动作事件Onclick,在该方法中页面跳转到App播放器的主页中。在主页中使用TabHost组件来实现导航栏布局切换页面,导航分为3个模块-音乐列表、艺术家列表、在线搜索。

2.2 音乐列表

音乐列表页面所在的类为ListActivity类,在该类首先执行onCreate()方法加载layout布局下的listmusic.xml文件,显示当前的页面。在该页面中定义了一个listview集合,取得SD卡中能够扫描的以mp3格式结尾的音乐文件,形成List列表。然后使用MuscicAdapter适配器的对象显示当前的列表。

2.3 歌曲的播放与暂停

进入该页面,获得imageBtnPlay按钮对象,然后通过setOnClickListener(new MyListener())给该对象绑定一个动作监听器。当点击按钮后触发该事件,调用onStart()方法执行音乐的播放与暂停功能。播放音乐首先获得要播放的音乐的id,然后根据该id查找音乐。如果音乐查找到说明该音乐文件存在,然后获得该音乐的标题、歌手、播放时间等信息,将当前的状态设置为play状态,调用startService()开启服务。

2.4 歌词显示

歌词显示功能是由SongsAcitivity类来实现。在该页面中加载layout布局下的songs.xml文件进行展示。播放器在播放音乐的时候会显示本地音乐的歌词,首先播放器需要扫描本地的歌曲,然后对歌曲进行初始化配置来匹配相应的歌词,这个界面使用了LinearLayout布局,运用了playMusic()函数实现音乐歌词的显示。

2.5 在线搜索

在线搜索采用的是soso提供的音乐接口,实现的功能类为WebSearch类。首先获得用户输入的关键字str,然后使用URLencoder类中的encode()方法将该字符串的str对象编码转换为GBK格式,转换成功之后启动线程。将请求的关键字封装到Bundle对象中,然后通过getData()方法向给定的网络地址发出查询请求。

3 结语

本文主要研究基于Android操作系统下的音乐播放器的开发,采用了Eclipse、SDK、ADT、SQLite等相关工具和技术,实现了一款界面友好,容易上手操作、功能实用的音乐播放器。该系统基本能满足用户对手机音乐播放的要求。

参考文献

[1]邓凡平.深入理解Android(卷1)[M].北京:机械工业出版社,2011.

[2]李宁.Android/iPhone开发完全讲义[M].北京:中国水利水电出版社,2010.

[3]刘瑾,詹玲超.基于Struts的音乐网站的设计与实现[J].数字技术与应用,2016,(3):190-191.