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

2018-10-19 03:57张小琴
软件 2018年9期
关键词:播放器列表界面

张小琴,张 庚



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

张小琴,张 庚

(南京航空航天大学金城学院 信息工程学院,江苏 南京 210000)

音乐是在高压力的环境下进行放松的有效途径,随着Android终端设备的普及,使用Android平台播放音乐也是大部分人群的选择。文中详细讲述了一个Android应用程序开发平台的构建过程,并在此平台上开发了一款功能全面的音乐播放器。所设计的播放器可以搜索终端存储的音乐文件,按照关键词对音乐文件分类展示;该播放器可以按照需求对音乐文件进行播放、暂停、设置等功能操作。

Android;音乐播放器;模块设计

0 引言

随着社会的进步与发展,人们开始不止满足于物质生活,而更加注重于精神生活。在如今的高压力的生活、学习、工作中,音乐是放松精神,增加生活趣味的不二选择[1]。随着Android终端设备的普及,越来越多的人们开始使用Android平台播放音乐等[2]。本文设计了一款基于Android平台的音乐播放器,该播放器具有很强的实用性,其主要功能是搜索终端设备里所存储的音乐文件信息,并具有对音乐进行分类展示、播放、暂停、上下首切换以及添加喜欢的音乐等功能。

1 Android平台介绍

Android是由Google公司推出的一种以Linux为基础的开放源码的操作系统,主要适用于移动设备中,例如手机、平板电脑等终端设备。对于Android系统来说,最大的特点就是其开放的源码[3,4,5]。这一点使得更多的软件供应商和开发商能分享共同利益,同时它和互联网紧密相联,这使得开发人员移植互联网应用变得更加容易。

Android系统架构分为四层,包括:Linux核心层、系统运行库层、应用程序架构层、应用程序 层[3-5]。Linux核心层实现安全性、内存管理、进程管理和驱动模型等功能;系统运行库层提供各种程序库给Android系统中不同的组件使用;应用程序架构层主要提供API接口供上层调用;应用程序层是面对用户的,提供各种应用程序,如Email客户端、日历等。

开源的代码、完整的架构,使得Android系统得到了飞速的发展和应用。

2 音乐播放器架构设计

本次设计的基于Android平台的音乐播放器,主要功能是由一个开始等待的Loading界面转跳到音乐播放器的主界面,在主界面实现歌曲的播放、暂停、设置等功能;主界面有“我的音乐”、“我的最爱”、“文件夹”、“歌手”、“专辑”等模块按钮[2,6]。点击对应的模块按钮可以跳转到各自的子模块板块。具体架构如图1所示。

图1 音乐播放器架构

3 音乐播放器详细设计

3.1 开发环境安装和配置

本次设计使用Eclipse作为Java集成开发环境,并在原本Java的程序开发环境中装载ADT(Android Development Tools)以及SDK(Software Development Kit)来使它达到可以进行Android平台应用程序开发的环境配置[7-10]。ADT和SDK的加载配置如图2、图3所示。

图2 ADT的加载和配置

图3 SDK的加载和配置

3.2 音乐播放器功能模块设计

音乐播放器的设计步骤为,从等待界面进入所连接的主界面,再由主界面上的各个按钮进入每一子模块分别进行功能设计,模块有:

(1)专辑模块:此功能主要是检索本地歌曲并把歌曲的专辑信息给提取出来,转换成列表的形式展示出来,点击每一个专辑,即可进入该专辑的歌曲列表,点击对应歌曲可以进行播放、暂停等。

(2)歌手模块:此功能可以将本地歌曲里的所有歌曲的歌手作为列表显示出来,点击歌手名就能进入此歌手所唱的歌曲列表,点击对应歌曲可以进行播放、暂停等。

(3)文件夹模块:此功能可以选择本地存放歌曲的文件夹,点击进入某文件夹可以显示该文件夹中所有歌曲列表,点击对应歌曲可以进行播放、暂停等。

(4)我的音乐模块:该模块包括了本地歌曲的列表、搜索歌曲、播放设置、添加喜欢等功能,如果添加了喜欢,则歌曲对应图标进行改变,并将歌曲添加到我的最爱列表里。

(5)我的最爱模块:在我的音乐模块中可以选择歌曲为我的最爱,并进行特殊标志同时展示到该模块中,同时在该模块中可以看到所有我的最爱列表,也可以取消某首歌曲我的最爱标志并从列表中清除。

(6)底部设置模块等:该模块具有播放、暂停、歌曲设置等功能,且固定在播放器界面底部,其他模块切换时该部分位置、功能保持不变。

3.3 关键程序设计

由于程序设计篇幅较长,选取其中关键部分进行介绍。音乐播放器首先要搜索本地存储器中所有音乐文件,将音乐文件信息按照专辑、歌手、文件夹等关键词进行提取并展示到各个对应子模块的列表中。

(1)存放音乐文件信息

将获取到的音乐文件信息逐个输入到数据库里,并进行数据库的插入语句操作。

public void saveMusicInfo(List list) {

SQLiteDatabase db = DatabaseHelper.(mContext);

for (MusicInfo music : list) {

ContentValues cv = new ContentValues();

cv.put("songid", music.songId);

cv.put("albumid", music.albumId);

cv.put("duration", music.duration);

cv.put("musicname", music.music­Name);

cv.put("artist", music.artist);

cv.put("data",music.data);

cv.put("folder", music.folder);

cv.put("musicnamekey", music.mu­sicNameKey);

cv.put("artistkey", music.artistKey);

cv.put("favorite", music.favorite);

db.insert(, null, cv);

}

}

(2)获取音乐文件信息

根据数据库中的各个表里的信息,将信息一一对应的提取出来。

private List parseCursor(Cursor cursor) {

List list = new ArrayList();

while(cursor.moveToNext()) {

MusicInfo music = new MusicInfo();

music._id = cursor.getInt(cursor. getColumnIndex("_id"));

music.songId = cursor.getInt(cursor. getColumnIndex("songid"));

music.albumId = cursor.getInt(cursor. getColumnIndex("albumid"));

music.duration = cursor.getInt(cursor. getColumnIndex("duration"));

music.musicName = cursor.getString (cursor.getColumnIndex("musicname"));

music.artist = cursor.getString(cursor. getColumnIndex("artist"));

music.data = cursor.getString(cursor. getColumnIndex("data"));

music.folder = cursor.getString(cursor. getColumnIndex("folder"));

music.musicNameKey = cursor. getString(cursor.getColumnIndex("musicnamekey"));

music.artistKey = cursor.getString (cursor.getColumnIndex("artistkey"));

music.favorite = cursor.getInt(cursor. getColumnIndex("favorite"));

产后出血是在分娩胎儿后的24小时内阴道出血超过500ml情况,产后宫缩乏力患者子宫无法正常的收缩,胎盘附着面血窦无法正常关闭,导致了产后出血,是比较严重的产科并发症,也是产妇死亡的主要因素。临床中使用科学的产后处理能够止血,如果不及时处理则会引起后遗症,导致患者的死亡。产后出血中的宫缩乏力是比较多见的类型,患者失血速度快,失血量大,产后出血对产妇的危害性非常大。

list.add(music);

}

cursor.close();

return list;

}

4 音乐播放器功能展示

图4 音乐播放器主界面

由主界面点击按钮进入“我的音乐”功能,该模块包括了本地歌曲的列表、搜索歌曲、播放设置、添加喜欢等功能。如果添加了喜欢,则歌曲左侧的爱心会变成红色,并添加到我的最爱列表里。我的音乐界面如图5所示。点击列表中的对应歌曲可以进行播放,在界面底部有播放、暂停、设置等按钮,可以通过点击按钮对当前歌曲进行相应的操作。

图5 我的音乐界面

其它功能由于篇幅原因不再一一展示。

5 结论

本次基于Android平台的音乐播放器的设计与实现,主要工作就是建立Android应用程序开发平台、音乐播放器功能模块划分、界面的设计以及歌曲的存储、读取、播放等功能设计;并通过按钮进入功能子模块,将子模块所需要的数据调用出来形成列表展示。此音乐播放器功能齐全、简单实用、能够满足日常需求,且在后续使用中可以进一步进行功能的扩展。

[1] 吕尚伟. 随身听与随身看[J]. 数码影像时代, 2012, (12): 2.

[2] 张小雨. 基于Android平台音频播放器的设计与实现[D]. 西安: 西安电子科技大学, 2015.

[3] 盖索林编. Google Android开发入门指南(第2版)[M]. 北京: 人民邮电出版社, 2009: 2-6.

[4] 李佐彬. Android开发入门与实战体验[M]. 北京: 机械工业出版社, 2011: 5-45.

[5] 李刚. 疯狂Android讲义(第3版)[M]. 北京: 电子工业出版社, 2017: 1-29.

[6] 冯建元. 音频播放器的架构分析与关键技术的实现[J]. 计算机与网络, 2009, (20): 53-56.

[7] 何孟翰. Google Android SDK开发实战演练(第2版)[M]. 北京: 人民邮电出版社, 2016: 7-16.

[8] 薛显亮. 解析Google Android SDK——智能手机开发范例手册[M]. 北京: 中国铁道出版社, 2012: 2-15.

[9] 佘志龙等.Google Android SDK开发范例大全(第3版)[M]. 北京: 人民邮电出版社, 2011: 1-19.

[10] 黄宏程, 胡敏, 陈如松. Android移动应用设计与开发[M]. 北京: 人民邮电出版社, 2012: 1-9.

The Design and Implementation of Music Player Based on Android

ZHANG Xiao-qin, ZHANG Geng

(Nanjing University of Aeronautics and Astronautics Jincheng College College of Information Engineering, Nanjing Jiangsu 210000)

Listening to music is an effective way to relax in the high pressure environment. With the popularity of Android terminal device, playing music on the Android platform is a choice for most people. In this paper, one Android application development platform was built, and a full-featured music player was developed on this platform. This music player can search all the music files stored by the terminal device and classify them according to the key words. Music can be played, paused, and set up according to the requirements by this music player.

Android; Music Player; Modular design

TP311.52

A

10.3969/j.issn.1003-6970.2018.09.023

张小琴(1984-),女,硕士,南京航空航天大学金城学院,讲师,研究方向:信号与信息处理;张庚(1994-),男,学士,南京航空航天大学金城学院,本科生,研究方向:信息工程。

本文著录格式:张小琴,张庚. 基于Android平台的音乐播放器设计与实现[J]. 软件,2018,39(9):113-116

猜你喜欢
播放器列表界面
学习运用列表法
国企党委前置研究的“四个界面”
Walkman诞生40周年 索尼适时发布NW-ZX500和NW-A100系列播放器
基于STM32的MP3播放器设计
Moon ACE播放器/放大器一体机
基于FANUC PICTURE的虚拟轴坐标显示界面开发方法研究
人机交互界面发展趋势研究
播放器背板注塑模具设计
手机界面中图形符号的发展趋向
不含3-圈的1-平面图的列表边染色与列表全染色