网络音乐播放器设计说明书.docx
- 文档编号:11067358
- 上传时间:2023-02-24
- 格式:DOCX
- 页数:60
- 大小:1.17MB
网络音乐播放器设计说明书.docx
《网络音乐播放器设计说明书.docx》由会员分享,可在线阅读,更多相关《网络音乐播放器设计说明书.docx(60页珍藏版)》请在冰豆网上搜索。
网络音乐播放器设计说明书
网络音乐播放器
V1.0
设计说明书
华康嘉合科技XX
摘要
当今社会的生活节奏越来越快,随着硬件移动设备的越来越先进,人们对移动设备的要求也越来越高,从以前的追求技术到现在的追求视觉,因此,也逐步的提高了对系统的要求,本文主要是对Android系统上一的款音乐播放器应用程序的设计。
Android是一个开源的系统,它底层是基于Linux的操作系统,本论文的音乐播放器采用了Android开源系统技术,利用Java语言和Eclipse编辑工具对播放器进行编写。
同时给出了详细的系统设计过程、部分界面图及主要功能运行流程图,本文还对高度过程中遇到的问题和解决方法进行了详细的讨论,该音乐播放器集播放、暂停、停止、上一首、下一首、音量调节、歌词显示等功能于一体,性能良好,在Android系统中能独立运行。
该播放器还拥有对手机文件浏览器的访问功能、歌曲播放模式、以及歌词开闭状态的友好设置。
第一章引言
1.1项目背景
当今社会的生活节奏越来越快,人们对手机的要求也越来越高,由于手机市场发展迅速,使得手机操作系统也出现了不同各类,现在的市场上主要有三个手机操作系统,Windowsmobile,symbian,以及谷歌的Android操作系统,其中占有开放源代码优势的Android系统有最大的发展前景。
那么能否在手机上拥有自己编写的个性音乐播放器呢?
能的,谷歌Android系统就能做到。
本文的音乐播放器就是基于谷歌Android手机平台的播放器。
Android:
是谷歌于2007年公布的开放式源代码手机系统,它的开放性就优于其它封闭式的手机系统,因此,任何人都可能根据自己的喜好将手机系统中的所有功能重新编写。
这使得越来越多的人关注这个操作系统。
本次作品音乐播放器就是基于Android平台的。
随着计算机的广泛运用,手机市场的迅速发展,各种音频视频资源也在网上广为流传,这些资源看似平常,但已经渐渐成为人们生活中必不可少的一部分了。
于是各种手机播放器也紧跟着发展起来,但是很多播放器一味追求外观花哨,功能庞大,对用户的手机造成了很多资源浪费,比如CPU,内存等的占用率过高,在用户需要多任务操作时,受到了不小的影响,带来了许多不便,而对于大多数普通用户,许多功能用不上,形同虚设。
针对以上各种弊端,选择了开发多语种的音频视频播放器,将各种性能优化,继承播放器的常用功能,满足一般用户(如听歌,看电影)的需求,除了能播放常见格式的语音视频文件,高级功能:
还能播放RMVB格式的视频文件。
此外,还能支持中文、英文等语言界面。
要研究了各种市场上流行的手机播放器,了解它们各自的插件及编码方式,还有各种播放器播放的特别格式文件,分析各种编码的优缺点以及各种播放器本身存在的缺陷和特点,编写出功能实用,使用方便快捷的播放器。
目前已经实现的功能有能播放常见音频文件的功能,如MP3,WAV,等,拥有播放菜单,能选择播放清单,具备一般播放器的功能,如快进,快退,音量调节等。
播放模式也比较完善,有单曲,顺序,循环,随机播放等模式。
1.2编写目的
现今社会生活紧X,而欣赏音乐是其中最好的舒缓压力的方式之一,本项目的目的是开发一个可以播放主流音乐文件格式,的播放器,本设计的实现的这主要功能是播放Mp3,Wav多种格式的音乐文件,并且能够控制播放,暂停,停止,上一曲,下一曲,音量调节,视觉外观,播放列表和歌曲文件的管理操作等多种播放控制功能,界面简明,操作简单。
本项目是一款基于Android手机平台的音乐播放器,使Android手机拥有个性的多媒体播放器,使手机显得更生动灵活化,与人们更为接近,让手机主人随时随地处于音乐视频的旋律之中。
使人们的生活更加多样化。
也使设计者更加熟练Android的技术和其它在市场上的特点
1.3网络流行音乐播放器简介
本小节举例介绍目前网络上流行的几款音乐播放器,比如国产千千静听,酷狗音乐等。
比较分析了它们各自特有的功能,此外还集中介绍了常见的几种编码格式以及它们各自的特点。
1.3.1 千千静听
千千静听是一款专为用户定制的全新一代的免费听歌下载音乐播放器软件。
提供百万首歌曲免费试听下载,拥有最新、最流行的歌曲,提供第一时间音乐资讯;超高品质(320kbps)的音乐歌曲下载,给耳朵更优质的享受;超炫的智能语音搜歌功能让听歌更加快捷;免费的手机铃声歌曲下载;轻松拖拽歌词,保持歌词同步,支持边听边唱;支持在线播放下载;流量限额提醒功能。
软件特色:
1、高精度音质,完美还原听觉;2、在线自动下载歌词,卡拉OK式同步显示;3、软件小、运行快、支持众多插件,自由编辑歌词,由你做主;4、自由转换MP3、WMA,APE,WAV等多种音频格式,批量修改歌曲标签信息;5、个性化皮肤,多种视觉效果享受永远免费。
1.3.2 酷狗音乐
酷狗音乐是中国领先的数字音乐交互服务提供商,互联网技术创新的领军企业,致力于为互联网用户和数字音乐产业发展提供最佳的解决方案,公司的使命是成为亚太地区最大的数字音乐销售推广企业。
自公司创建以来,一直在数字音乐发展上大胆尝试,先后与几十家唱片公司、管理机构合作探索发展,积累了数万首数字音乐,并在推动广X围的跨行业、跨平台合作上做出努力,在艰巨的全球音乐数字化进程中做出自身的贡献。
全球最受欢迎的免费中文播放软件,流行音乐搜索平台。
软件特色:
1、迷你界面、界面更酷、绚丽流行;保持了WindowsVista和XP下的完美表现,让人耳目一新;2、卡拉OK酷狗独创“卡拉OK”歌词显示,多种模式,边听边唱,让你听歌更好玩;3、支持本地音乐播放完美音质,支持所有的音频文件,本地文件拖放,同时支持网络高速下载和本地播放;4、超强搜索和下载优化歌曲搜索引擎,提高搜索准确度;智能化节约带宽,可关闭网络功能;5、流行音乐资讯酷狗榜单家族、狗友推荐、酷吧、狗窝,最新流行音乐一网打尽,好听的音乐来“找”你;6、个性化手机炫铃DIY,让拥有X扬个性的铃声7、音频格式我选择我的歌曲我制作,音质音效我决定8、收音机动感音乐识别体验精选多家电台,收听全球风云变化,更能识别电台中的音乐。
第二章系统需求分析
2.1功能需求(用例图分析)
根据项目的目标,我们可获得项目系统的基本需求,以下从不同角度来描述系统的需求,并且使用用例图来描述,系统的功能需求,我们分成四部分来概括,即播放器的基本控制需要,播放列表管理需求,播放器友好性需求和播放器扩展卡需求。
以下分别描述:
2.1.1播放器的基本控制需求
图2.1播放器基本控制图
用例名称:
播放
参与者:
用户
目标:
使得用户可以播放在播放列表中选中的歌曲
前置条件:
播放器正在运行
基本事件流:
1.用户单击“播放”按钮
2.播放器将播放列表中的当前的歌曲
用例名称:
暂停
参与者:
用户
目标:
使得用户可以暂停正在播放的歌曲
前置条件:
歌曲正在播放且未停止和暂停
基本事件流:
1.用户单击“暂停”按钮
2.播放器将暂停当前的歌曲
用例名称:
停止
参与者:
用户
目标:
使得用户可以停止正在播放的歌曲
前置条件:
歌曲正在播放或暂停
基本事件流:
1.用户单击“停止”按钮
2.播放器将停止当前播放的歌曲
用例名称:
上一首/下一首
参与者:
用户
目标:
使得用户可以听上一首或下一首歌曲
前置条件:
歌曲正在播放或暂停
基本事件流:
1.用户单击“上一首或下一首”按钮
2.播放器将播放上一首或下一首歌曲
用例名称:
播放清单
参与者:
用户
目标:
使得用户可以进入播放清单
前置条件:
程序在运行
基本事件流:
1.用户单击“清单”按钮
2.播放器进入清单列表
2.1.2播放清单列表管理需求
当用户选中列表中某一项歌曲,就有的需求:
图2.2播放器清单
用例名称:
播放
参与者:
用户
目标:
使得程序播放选中的歌曲
前置条件:
程序运行在播放菜单选项中
基本事件流:
1.用户单击“播放”按钮
2.播放器进入播放状态
用例名称:
详细
参与者:
用户
目标:
使得程序显示歌曲详情
前置条件:
程序运行在播放菜单选项中
基本事件流:
1.用户单击“详细”按钮
2.显示歌曲详细状态
用例名称:
增加
参与者:
用户
目标:
使得程序进入手机扩展SD卡
前置条件:
程序运行在播放菜单选项中
基本事件流:
1.用户单击“增加”按钮
2.播放器进入手机扩展SD卡
用例名称:
移除/全部移除
参与者:
用户
目标:
使选中的歌曲被移除
前置条件:
程序运行在播放菜单选项中
基本事件流:
1.用户单击“移除/全部移除”按钮
2.播放器移除选中歌曲/全部移除歌曲
用例名称:
设定
参与者:
用户
目标:
使得程序进入播放器设定状态
前置条件:
程序运行在播放菜单选项中
基本事件流:
1.用户单击“设定”按钮
2.播放器进入设定界面
2.1.3播放友好性需求
图2.3播放器设定
用例名称:
播放模式
参与者:
用户
目标:
使得程序进入播放模式设定状态
前置条件:
程序运行在播放器设定界面中
基本事件流:
1.用户单击“顺序、随机、单曲”按钮
2.播放器进入选中模式播放状态
用例名称:
歌词显示
参与者:
用户
目标:
使得程序进入播放器歌词设置状态
前置条件:
程序运行在播设定界面
基本事件流:
1.用户单击“歌词开关按钮”按钮
2.播放器显示或关闭歌词
2.1.4播放器扩展卡需求
图2.4文件浏览器
用例名称:
SDcard
参与者:
用户
目标:
使得程序进入SDcard目录
前置条件:
程序运行目录界面
基本事件流:
1.用户单击“Sdcard”选项
2.程序进入Sdcard目录下
用例名称:
System
参与者:
用户
目标:
使得程序进入System目录
前置条件:
程序运行目录界面
基本事件流:
1.用户单击“System”选项
2.程序进入System目录下
2.1.5功能需求(时序图)分析
音乐播放器的时序图分析如(图)
2.2系统结构图和流程图
(1)音乐播放器的系统流程图(图2.5.1)
图2.5.1流程图
(2)系统功能表(表2.1)和系统功能结构图(图2.5.2)
功能类别
子功能
子功能
播放列表
播放列表菜单
退出播放
从扩展卡寻找歌曲
歌曲菜单
播放->进入播放界面
删除->数据库同步更新
重命名->数据库同步更新
向上、下移动->数据库同步更新
播放界面
播放
播放歌曲->线程启动->时间更新
暂停
暂停歌曲->线程暂停->时间暂停
停止
停止歌曲->线程停止->时间停止
上一首
播放列表索引变化->寻找上一ID歌曲
下一首
播放列表索引变化->寻找下一ID歌曲
播放界面菜单
返回到播放列表
返回到主菜单
从扩展卡寻找歌曲
退出播放器
隐藏播放界面
主菜单
退出程序
程序退出
进入播放列表
显示播放列表
表2.1功能表
图2.5.2系统功能结构图
2.3系统界面需求
播放器界面要求布局合理,颜色舒适,控制按钮友好,为了减少开发工程量,图片素材多数为公司项目素材(图2.6)
图2.6播放器界面
说明:
左下角为清单按钮右下角为程序退出按钮
蓝色条为音轨
2.4系统性能需求
根据Android手机系统要求无响应时间为5秒,所以就有如下性能要求:
(1)当要求歌曲播放时,程序响应时间最长不能超过5秒
(2)当要求歌曲暂停时,程序响应时间最长不能超过5秒
(3)当要求歌曲停止时,程序响应时间最长不能超过5秒
(4)当要求歌曲上/下一首时,程序响应时间最长不能超过5秒
(5)当要求进行清单列表时,程序响应时间最长不能超过5秒
2.5运行环境需求
操作系统:
Android手机基于Linux操作系统
支持环境:
Android1.5-2.0.1版本
开发环境:
Eclipse3.5ADT0.95
第三章Android数据库设计
数据结构组织和数据库文件设计要根据不同用途,使用要求等,来决定数据的整体组织形式等一系列问题。
数据库,顾名思义,是存放数据的仓库。
只不过这个仓库是在计算机存储设备上,而且数据是按一定的格式存放的。
数据库中的数据按一定数据模型组织、描述和存储,具有较小的重复度、较高的数据独立性和易扩展性,并且可以被在一定X围内的各种用户共享。
在涉及数据库的软件开发中,需要根据有待解决的问题性质、规模,以及所采用的前端程序创建工具等,做出合适的数据库类型选择
3.1数据库及字段属性设计
3.1.1字段设计(表、图)
file_table主要是保存歌曲名字、类型、路径
字段说明:
Id歌曲id号fileName歌曲名字filePath歌曲路径sort歌曲类型(表3.1、图3.1.1)
Android自带一个MediaStore封闭类专门来存储媒体信息
通过UriEXTERNAL_CONTENT_URI来访问SDcard中的歌曲详细信息。
存放媒体信息如TITLE(标题)、ARTIST(艺术家)、ALBUM(专辑)、SIZE(大小)(表3.2、图3.1.2)
属性
数据类型
允许空
主键
_Id
INTEGER
Notnull
Primarykey
fileName
TEXT
Notnull
filePath
TEXT
sort
INTEGER
表3.1
属性
数据类型
允许空
主键
_ID
INTEGER
Notnull
Primarykey
TITLE
TEXT
Notnull
ARTIST
TEXT
ALBUM
TEXT
SIZE
LONG
表3.2
图3.1.1歌曲列表
图3.1.2歌曲详细
3.1.2音乐播放器E-R图
音乐播放器E-R图(图3.1.3)
图3.1.3E-R图
3.2数据库连接
这里将介绍如何进行Android数据库连接,Android中自带SQLite数据库,这是一个十分小型的数据库,这样正适合Android这种移动平台使用。
Android数据库存储的位置在data/data/<项目文件夹>/databases/目录下Android是利用ContentProvider作为内容提供商,SQLiteOpenHelper数据库帮助类来进行对数据库的创建和操作。
通过Context.getContentResolver()方法直接对数据库进行操作。
程序中数据库类为DBHelperextendsSQLiteOpenHelper(继承关系),内容提供类DBProviderextendsContentProvider(继承关系)
3.2.1创建数据库
Android提供了标准的数据库创建方式。
继承SQLiteOpenHelper,实现onCreate和onUpgrade两个方法,有个好处就是便于数据库版本的升级,连接数据库的算法如下:
publicDBHelper(Contextcontext){//创建数据库
super(context,DATABASE_NAME,null,DATABASE_VERSION);
}
publicvoidonCreate(SQLiteDatabasedb){//创建时调用
db.execSQL(DATABASE_CREATE);
}
publicvoidonUpgrade(SQLiteDatabasedb,intoldVersion,intnewVersion){//版本更新时调用
db.execSQL("DROPTABLEIFEXISTSFile_Table");onCreate(db);
}
Override//在ContextProvider运行时自动创建数据库
publicbooleanonCreate(){
dbOpenHelper=newDBHelper(getContext());
returntrue;
}
数据库如果创建不成功则抛出FIleNotFoundException异常
3.2.2操作数据库
Android对数据库的操作主要有插入、删除、更新、查询操作,在进行任何操作时都必须指定一个Uri,才能对相应的表进行数据操作。
//数据库删除操作
Override
publicintdelete(Uriarg0,Stringarg1,String[]arg2){
SQLiteDatabasedb=dbOpenHelper.getWritableDatabase();
try{
db.delete(FileColumn.TABLE,arg1,arg2);
}catch(Exceptionex){
ex.printStackTrace();
}return1;
}
Override//数据库插入操作
publicUriinsert(Uriuri,ContentValuesvalues){
SQLiteDatabasedb=dbOpenHelper.getWritableDatabase();
longcount=0;
try{count=db.insert(FileColumn.TABLE,null,values);
}catch(Exceptionex){ex.printStackTrace();
}
if(count>0)returnuri;
elsereturnnull;
}
//数据库更新操作
Override
publicintupdate(Uriuri,ContentValuesvalues,Stringselection,String[]selectionArgs){
SQLiteDatabasedb=dbOpenHelper.getWritableDatabase();
inti=0;
try{
i=db.update(FileColumn.TABLE,values,selection,null);returni;
}catch(Exceptionex){}
return0;
}
3.2.3数据显示
程序是利用Cursor游标类指向数据表中的某一项,然后进行查询数据,用Log日志显示出来
Override//数据库查询操作
publicCursorquery(Uriuri,String[]projection,Stringselection,String[]selectionArgs,StringsortOrder){
SQLiteDatabasedb=dbOpenHelper.getWritableDatabase();
//依次参数为:
表名,查询字段,where语句,替换,groupby(分组),having(分组条件),orderby(排序)
Cursorcur=db.query(FileColumn.TABLE,projection,selection,selectionArgs,null,null,sortOrder);returncur;}
第四章Android项目介绍
4.1什么是Android?
4.1.1Android简介
Android一词的本义指“机器人”,同时也是Google于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成,号称是首个为移动终端打造的真正开放和完整的移动软件。
目前最好的是Android2.0的摩托罗拉Droid
Android是基于Linux内核的软件平台和操作系统,早期由Google开发(在华注册商标名为“安致”),后由开放手机联盟(OpenHandsetAlliance)开发。
它采用了软件堆层(softwarestack,又名以软件叠层)的架构,主要分为三部分。
低层以Linux内核工作为基础,只提供基本功能;其他的应用软件则由各公司自行开发,以Java作为编写程序的一部分。
另外,为了推广此技术,Google和其它几十个手机公司建立了开放手机联盟。
Android在未公开之前常被传闻为Google或gPhone。
大多传闻认为Google开发的是自己的手机产品,而不是一套软件平台。
到了2010年1月,Google开始发表自家品牌手机的NexusOne。
目前最新SDK版本为Android2.1
4.1.2AndroidFeatures特性
Android系统有如下的几大特性:
·应用程序框架支持组件的重用与替换
·Dalvik虚拟机专门为移动设备做了优化
·内部集成浏览器该浏览器基于开源的WebKit引擎
·优化的图形库包括2D和3D图形库,3D图形库基于OpenGLES
·SQLite用作结构化的数据存储
·多媒体支持包括常见的音频、视频和静态印象文件格式(如MPEG4,H.264,MP3,AAC,AMR,JPG,PNG,GIF)
·GSM(依赖于硬件)
·蓝牙Bluetooth,EDGE,3G,andWiFi(依赖于硬件)
·照相机,GPS,指南针,和加速度计(依赖于硬件)
·丰富的开发环境包括设备模拟器,调试工具,内存及性能分析图表,和Eclipse集成开发环境插件
4.1.3Android基本框架(AndroidArchitecture)
图4.1AndroidArchitecture
(1)Applications
ApplicationAndroid会同一个核心应用程序包一起发布,该应用程序包包括email客户端,SMS短消息程序,日历,地图,浏览器,联系人管理程序等。
所有的应用程序都是用JAVA编写的。
(2)ApplicationFrameWork
开发者完全可以访问核心应用程序所使用的API框架。
该应用程序架构用来简化组件软件的重用;任何一个应用程序都可以发布它的功能块并且任何其它的应用程序都可以使用其所发布的功能块(不过得遵循框架的安全性限制)。
该应用程序重用机制使得组建可以被用户替换。
所有的应用程序都由一系列的服务和系统组成,包括:
·可扩展的视图(Views)可以用来建应用程序,包括列表(lists),网格(grids),文本框(textboxes),按钮(buttons),甚至包括一个可嵌入的web浏览器
·内容管理器(ContentProviders)使得应用程序可以访问另一个应用程序的数据(如联系人数据库),或者共享它们自己的数据。
·资源管理器(ResourceManager)提供非代码资源的访问,如本地字符串,图形,和分层文件(layoutfiles)。
·通知管理器(NotificationMana
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 网络 音乐 播放 设计 说明书