基于Android平台的手机音乐播放器的设计与实现
参与者:用户。
目标:使得用户可以随意听某一进度时刻的音乐。 前置条件:程序在运行。 基本事件流:1. 用户单击进度条。 2. 播放器将播放当前进度。
(5)用例名称:退出程序。
参与者:用户。
目标:使得用户可以推出音乐播放器。 前置条件:程序在运行。
基本事件流:1. 用户单击Menu,再点击退出。 2. 播放器被退出。
(6)用例名称:进入播放列表。
参与者:用户。
目标:使得用户可以以列表的形式查看可以播放的音乐文件。 前置条件:程序在运行。
基本事件流:1. 用户单击“进入列表”按钮。 2. 查看音乐文件。
(7)用例名称:主菜单功能。
参与者:用户。
目标:使得用户可以以列表的形式查看可以播放的音乐文件。 前置条件:程序在运行。
基本事件流:1. 用户单击“主菜单”按钮。 2. 进入管理界面,对音乐进行管理。
(8)用例名称:Menu菜单功能。
参与者:用户。
目标:使得用户可以以列表的形式查看可以播放的音乐文件。 前置条件:程序在运行。
基本事件流:1. 用户单击“menu”按钮。 2. 系统管理。
播放器在播放的时候,有一些美观化的操作,比如在播放界面的背景添加精美的图片,解析并显示出音乐库中的歌手图片,解析并显示音乐库中歌手的名字,解析并显示音乐库中音乐的时间长度,解析并显示音乐库中音乐的专辑名称等。下图明确在播放界面中的显示设置,如图3-2。
- 12 -
播放界面 歌曲名称 专辑名称 歌手图片 歌曲时长
图 3-2 播放界面显示设置
播放器界面要求布局合理,颜色舒适,控制按钮友好,为了减少开发工程量,图片素材多数为公司项目素材,很多素材也是由美工做出来的,网站上也可以下载(如图3-3)。
图3-3 播放器界面
系统性需求,根据Android手机系统要求无响应时间为5秒,所以就有如下性能要求:
(1)当要求歌曲播放时,程序响应时间最长不能超过5秒。 (2)当要求歌曲暂停时,程序响应时间最长不能超过5秒。
- 13 -
基于Android平台的手机音乐播放器的设计与实现
(3)当要求歌曲停止时,程序响应时间最长不能超过5秒。 (4)当要求歌曲上/下一首时,程序响应时间最长不能超过5秒。 (5)当要求进行清单列表时,程序响应时间最长不能超过5秒。
运行环境的需求也是由要求的,一个良好的运行环境可以让开发者有一个良好的心情去开发程序。
操作系统:Android手机基于Linux操作系统。 支持环境:Android 2.3.3。
开发环境:Eclipse 3.5 ADT 0.95、tomcat 6.0.33。
- 14 -
第4章 数据库设计
数据结构组织和数据库文件设计要根据不同用途,使用要求等,来决定数据的整体组织形式等一系列问题。
数据库,顾名思义,是存放数据的仓库。只不过这个仓库是在计算机存储设备上,而且数据是按一定的格式存放的。数据库中的数据按一定数据模型组织、描述和存储,具有较小的重复度、较高的数据独立性和易扩展性,并且可以被在一定范围内的各种用户共享。在涉及数据库的软件开发中,需要根据有待解决的问题性质、规模,以及所采用的前端程序创建工具等,做出合适的数据库类型选择。
4.1 E-R图及逻辑结构设计
4.1.1 音乐播放器E-R图
根据功能与模块划分,可以得到音乐播放器 E-R(实体-联系:entity-relation图),如图4-1。
网络曲库 本地音乐 其他 收藏管理 图4-1 音乐播放器E-R图
下载管理 歌曲id 歌曲图片 歌手名字 歌曲名字 专辑名称 歌曲 组成 列表名字 播放列表 列表编号 播放器 组成 歌曲数目 - 15 -
基于Android平台的手机音乐播放器的设计与实现
4.1.2 逻辑结构设计
file_table 主要是保存歌曲名字、类型、路径。
Android自带一个MediaStore封闭类专门来存储媒体信息。
通过Uri EXTERNAL_CONTENT_URI 来访问SDcard中的歌曲详细信息,以下需要在数据库中建三个表,每个表的属性如下。
存放媒体信息如musicname(歌曲名字)、albumname(专辑名字)、albumpicpath(专辑的路径)、compose(作者)、adddate(添加时间)、singer(歌曲名字)、groupname
(收藏组名称)。
表4-1
属性 _id musicname albumname albumpicpath composer adddate singer
数据类型 INTEGER TEXT TEXT TEXT TEXT TEXT TEXT
允许空 Not null Not null Not null Not null Not null Not null Not null
主键 Primary key
下表是收藏组数据表,在这个表中对收藏组给id属性,收藏组的名字即可。
表4-2 收藏组数据表
属性 _id groupname
数据类型 INTEGER TEXT
允许空 Not null Not null
主键 Primary key
下表是对上两个表做连接,能同时调用两个表的属性。
表4-3 连接两个表
属性 _id groupid musicid
数据类型 INTEGER INTEGER INTEGER
允许空 Not null Not null Not null
主键 Primary key
- 16 -