基于Android手机平台的音乐播放器策划书.doc

上传人:仙人指路1688 文档编号:2393952 上传时间:2023-02-17 格式:DOC 页数:46 大小:1.27MB
返回 下载 相关 举报
基于Android手机平台的音乐播放器策划书.doc_第1页
第1页 / 共46页
基于Android手机平台的音乐播放器策划书.doc_第2页
第2页 / 共46页
基于Android手机平台的音乐播放器策划书.doc_第3页
第3页 / 共46页
基于Android手机平台的音乐播放器策划书.doc_第4页
第4页 / 共46页
基于Android手机平台的音乐播放器策划书.doc_第5页
第5页 / 共46页
点击查看更多>>
资源描述

《基于Android手机平台的音乐播放器策划书.doc》由会员分享,可在线阅读,更多相关《基于Android手机平台的音乐播放器策划书.doc(46页珍藏版)》请在三一办公上搜索。

1、基于Android手机平台的音乐播放器目录第一章 引 言61.1 项目背景61.2 编写目的71.3 参考资料7第二章 系统需求分析72.1 功能需求(用例图分析)72.1.1 播放器的基本控制需求82.1.2 播放清单列表管理需求92.1.3 播放友好性需求112.1.4 播放器扩展卡需求132.1.5 功能需求(时序图)分析142.2 系统结构图和流程图142.3 系统界面需求162.4 系统性能需求172.5 运行环境需求17第三章 Android数据库设计183.1 数据库及字段属性设计183.1.1 字段设计(表、图)183.1.2 音乐播放器E-R图203.2 数据库连接203.2

2、.1 创建数据库203.2.2 操作数据库213.2.3 数据显示223.4 Android 音乐播放器的工程314.4.1 Android项目314.4.2 Android工程程序结构324.4.3 AndroidManifest.xml文件34第四章 播放器系统功能详细设计364.1音乐播放器主界面功能实现364.1.1 播放器主界面364.1.2 播放界面音轨的实现374.1.3 播放器播放、暂停、停止等功能404.2 播放列表功能414.3 菜单功能435.3.1 菜单界面445.3.2 菜单功能实现454.4 播放设置界面465.4.1 界面实现465.4.2 歌词显示实现484.5

3、 手机扩展卡的访问505.5.1 文件浏览器界面505.5.2 文件浏览器功能实现514.6 数据存储方式525.6.1 SharedPreferences525.6.2 File存储方式535.6.3 SQLiteDatabase数据库53第五章 结 论55摘 要 当今社会的生活节奏越来越快+Android系统上一的款音乐播放器应用程序的设计与实现进行讨论。Android是一个开源的系统,它底层是基于Linux的操作系统,本论文的音乐播放器采用了Android开源系统技术,利用Java语言和Eclipse编辑工具对播放器进行编写。同时给出了详细的系统设计过程、部分界面图及主要功能运行流程图,

4、本文还对高度过程中遇到的问题和解决方法进行了详细的讨论,该音乐播放器集播放、暂停、停止、上一首、下一首、音量调节、歌词显示等功能于一体,性能良好,在Android系统中能独立运行。该播放器还拥有对手机文件浏览器的访问功能、歌曲播放模式、以及歌词开闭状态的友好设置.MP3的全名是MPEG Audio Layer-3,是一种声音文件的压缩格式,由于本播放器只限于应用层程序的探讨,所以对具体的压缩算法不作深究。关键词:Android ; 开源系统 ; Windows ; 音乐播放器ABSTRACTThe pace of life in todays society, with more advanc

5、ed hardware mobile devices for mobile devices, people more and more is also high, the requirements from the previous pursuit to pursue the visual technology, therefore, also gradually improve the system requirements, the paper mainly is to take on a music player from system design and realization of

6、 the application is discussed. Take the system is an open source, it is based on the operating system, use the Linux music player of the Android open-source system technology, using the Java language and editing tools for players to Eclipse. Presents the detailed design process, the part of the syst

7、em and the main functions of operation interface diagram of height, this paper also flow process problems and solving methods are discussed in detail, and the music player episode, pause, stop and a, next, volume adjustment, lyrics display functions, such as performance is good, can operate independ

8、ently in the Android system. This player has access to the file browser phone functions, songs and played pattern, open and close condition of friendly words. MP3 Audio MPEG Layer - name is 3, is a kind of sound files compressed format, because the players to explore, so the application procedure fo

9、r specific compression algorithm not probeKeyWords:Android ; Open source system ; Windows ; music player第一章 引 言1.1 项目背景 当今社会的生活节奏越来越快,人们对手机的要求也越来越高,由于手机市场发展迅速,使得手机操作系统也出现了不同各类,现在的市场上主要有三个手机操作系统,Windows mobile,symbian,以及谷歌的Android操作系统,其中占有开放源代码优势的Android系统有最大的发展前景。那么能否在手机上拥有自己编写的个性音乐播放器呢?能的,谷歌Android

10、系统就能做到。本文的音乐播放器就是基于谷歌Android手机平台的播放器。 Android:是谷歌于2007年公布的开放式源代码手机系统,它的开放性就优于其它封闭式的手机系统,因此,任何人都可能根据自己的喜好将手机系统中的所有功能重新编写。这使得越来越多的人关注这个操作系统。本次作品音乐播放器就是基于Android平台的。 随着计算机的广泛运用,手机市场的迅速发展,各种音频视频资源也在网上广为流传,这些资源看似平常,但已经渐渐成为人们生活中必不可少的一部分了。于是各种手机播放器也紧跟着发展起来,但是很多播放器一味追求外观花哨,功能庞大,对用户的手机造成了很多资源浪费,比如CPU,内存等的占用率

11、过高,在用户需要多任务操作时,受到了不小的影响,带来了许多不便,而对于大多数普通用户,许多功能用不上,形同虚设。针对以上各种弊端,选择了开发多语种的音频视频播放器,将各种性能优化,继承播放器的常用功能,满足一般用户(如听歌,看电影)的需求,除了能播放常见格式的语音视频文件,高级功能:还能播放RMVB格式的视频文件。此外,还能支持中文、英文等语言界面。 要研究了各种市场上流行的手机播放器,了解它们各自的插件及编码方式,还有各种播放器播放的特别格式文件,分析各种编码的优缺点以及各种播放器本身存在的缺陷和特点,编写出功能实用,使用方便快捷的播放器。目前已经实现的功能有能播放常见音频文件的功能,如MP

12、3,WAV,等,拥有播放菜单,能选择播放清单,具备一般播放器的功能,如快进,快退,音量调节等。播放模式也比较完善,有单曲,顺序,循环,随机播放等模式。1.2 编写目的 现今社会生活紧张,而欣赏音乐是其中最好的舒缓压力的方式之一,本项目的目的是开发一个可以播放主流音乐文件格式的播放器,本设计 的实现的这主要功能是播放Mp3,Wav多种格式的音乐文件,并且能够控制播放,暂停,停止,上一曲,下一曲,音量调节,视觉外观,播放列表和歌曲文件的管理操作等多种播放控制功能,界面简明,操作简单。 本项目是一款基于Android手机平台的音乐播放器,使Android手机拥有个性的多媒体播放器,使手机显得更生动灵

13、活化,与人们更为接近,让手机主人随时随地处于音乐视频的旋律之中。使人们的生活更加多样化。也使设计者更加熟练Android的技术和其它在市场上的特点第二章 系统需求分析2.1 功能需求(用例图分析) 根据项目的目标,我们可获得项目系统的基本需求,以下从不同角度来描述系统的需求,并且使用用例图来描述,系统的功能需求,我们分成四部分来概括,即播放器的基本控制需要,播放列表管理需求,播放器友好性需求和播放器扩展卡需求。以下分别描述:2.1.1 播放器的基本控制需求图2.1 播放器基本控制图用例名称:播放参与者:用户目标:使得用户可以播放在播放列表中选中的歌曲前置条件:播放器正在运行基本事件流:1.用户

14、单击“播放”按钮 2.播放器将播放列表中的当前的歌曲用例名称:暂停参与者:用户目标:使得用户可以暂停正在播放的歌曲前置条件:歌曲正在播放且未停止和暂停基本事件流:1.用户单击“暂停”按钮 2.播放器将暂停当前的歌曲用例名称:停止参与者:用户目标:使得用户可以停止正在播放的歌曲前置条件:歌曲正在播放或暂停基本事件流:1.用户单击“停止”按钮 2.播放器将停止当前播放的歌曲用例名称:上一首/下一首参与者:用户目标:使得用户可以听上一首或下一首歌曲前置条件:歌曲正在播放或暂停基本事件流:1.用户单击“上一首或下一首”按钮 2.播放器将播放上一首或下一首歌曲用例名称:播放清单参与者:用户目标:使得用户

15、可以进入播放清单前置条件:程序在运行基本事件流:1.用户单击“清单”按钮 2.播放器进入清单列表2.1.2 播放清单列表管理需求 当用户选中列表中某一项歌曲,就有的需求:图2.2 播放器清单用例名称:播放参与者:用户目标:使得程序播放选中的歌曲前置条件:程序运行在播放菜单选项中基本事件流:1.用户单击“播放”按钮 2.播放器进入播放状态用例名称:详细参与者:用户目标:使得程序显示歌曲详情前置条件:程序运行在播放菜单选项中基本事件流:1.用户单击“详细”按钮 2.显示歌曲详细状态用例名称:增加参与者:用户目标:使得程序进入手机扩展SD卡前置条件:程序运行在播放菜单选项中基本事件流:1.用户单击“

16、增加”按钮 2.播放器进入手机扩展SD卡用例名称:移除/全部移除参与者:用户目标:使选中的歌曲被移除前置条件:程序运行在播放菜单选项中基本事件流:1.用户单击“移除/全部移除”按钮 2.播放器移除选中歌曲/全部移除歌曲用例名称:设定参与者:用户目标:使得程序进入播放器设定状态前置条件:程序运行在播放菜单选项中基本事件流:1.用户单击“设定”按钮 2.播放器进入设定界面2.1.3 播放友好性需求图2.3 播放器设定用例名称:播放模式参与者:用户目标:使得程序进入播放模式设定状态前置条件:程序运行在播放器设定界面中基本事件流:1.用户单击“顺序、随机、单曲”按钮 2.播放器进入选中模式播放状态用例

17、名称:歌词显示参与者:用户目标:使得程序进入播放器歌词设置状态前置条件:程序运行在播设定界面基本事件流:1.用户单击“歌词开关按钮”按钮 2.播放器显示或关闭歌词2.1.4 播放器扩展卡需求图2.4 文件浏览器用例名称:SDcard参与者:用户目标:使得程序进入SDcard目录前置条件:程序运行目录界面基本事件流:1.用户单击“Sdcard”选项 2.程序进入Sdcard目录下用例名称:System参与者:用户目标:使得程序进入System目录前置条件:程序运行目录界面基本事件流:1.用户单击“System”选项 2.程序进入System目录下2.1.5 功能需求(时序图)分析音乐播放器的时序

18、图分析如(图)2.2 系统结构图和流程图(1)音乐播放器的系统流程图(图2.5.1)图2.5.1 流程图(2)系统功能表(表2.1)和系统功能结构图(图2.5.2)功能类别子功能子功能播放列表播放列表菜单退出播放从扩展卡寻找歌曲歌曲菜单播放-进入播放界面删除-数据库同步更新重命名-数据库同步更新向上、下移动-数据库同步更新播放界面播放播放歌曲-线程启动-时间更新暂停暂停歌曲-线程暂停-时间暂停停止停止歌曲-线程停止-时间停止上一首播放列表索引变化-寻找上一ID歌曲下一首播放列表索引变化-寻找下一ID歌曲播放界面菜单返回到播放列表返回到主菜单从扩展卡寻找歌曲退出播放器隐藏播放界面主菜单退出程序程

19、序退出进入播放列表显示播放列表表2.1 功能表图2.5.2 系统功能结构图2.3 系统界面需求 播放器界面要求布局合理,颜色舒适,控制按钮友好。图2.6 播放器界面 说明:左下角为清单按钮 右下角为程序退出按钮 蓝色条为音轨 2.4 系统性能需求根据Android手机系统要求无响应时间为5秒,所以就有如下性能要求:(1) 当要求歌曲播放时,程序响应时间最长不能超过5秒(2) 当要求歌曲暂停时,程序响应时间最长不能超过5秒(3) 当要求歌曲停止时,程序响应时间最长不能超过5秒(4) 当要求歌曲上/下一首时,程序响应时间最长不能超过5秒(5)当要求进行清单列表时,程序响应时间最长不能超过5秒2.5

20、 运行环境需求操作系统:Android手机基于Windows操作系统支持环境:Android 2.3 4.0版本开发环境:Eclipse 3.5 ADT 0.95 第三章 Android数据库设计 数据结构组织和数据库文件设计要根据不同用途,使用要求等,来决定数据的整体组织形式等一系列问题。数据库,顾名思义,是存放数据的仓库。只不过这个仓库是在计算机存储设备上,而且数据是按一定的格式存放的。数据库中的数据按一定数据模型组织、描述和存储,具有较小的重复度、较高的数据独立性和易扩展性,并且可以被在一定范围内的各种用户共享。在涉及数据库的软件开发中,需要根据有待解决的问题性质、规模,以及所采用的前端

21、程序创建工具等,做出合适的数据库类型选择3.1 数据库及字段属性设计3.1.1 字段设计(表、图)file_table 主要是保存歌曲名字、类型、路径字段说明:Id 歌曲id号 fileName 歌曲名字 filePath 歌曲路径 sort 歌曲类型(表3.1、图3.1.1) Android自带一个MediaStore封闭类 专门来存储媒体信息通过Uri EXTERNAL_CONTENT_URI 来访问SDcard中的歌曲详细信息。存放媒体信息如TITLE(标题)、ARTIST(艺术家)、ALBUM(专辑)、SIZE(大小 )(表3.2、图3.1.2)属性数据类型允许空主键_IdINTEGE

22、RNot nullPrimary keyfileNameTEXTNot nullfilePathTEXTsortINTEGER表3.1属性数据类型允许空主键_IDINTEGERNot nullPrimary keyTITLETEXTNot nullARTISTTEXTALBUMTEXTSIZELONG表3.2图3.1.1 歌曲列表图3.1.2 歌曲详细3.1.2 音乐播放器E-R图音乐播放器 E-R(实体-联系:entity-relation图)图(图3.1.3)图3.1.3 E-R图3.2 数据库连接 这里将介绍如何进行Android数据库连接,Android中自带SQLite数据库,这是一

23、个十分小型的数据库,这样正适合Android这种移动平台使用。Android数据库存储的位置在data/data/databases/目录下 Android是利用ContentProvider作为内容提供商,SQLiteOpenHelper数据库帮助类来进行对数据库的创建和操作。通过Context.getContentResolver()方法直接对数据库进行操作。程序中数据库类为DBHelper extends SQLiteOpenHelper(继承关系),内容提供类DBProvider extends ContentProvider(继承关系)3.2.1 创建数据库 Android 提供了标

24、准的数据库创建方式。继承SQLiteOpenHelper ,实现onCreate 和 onUpgrade 两个方法,有个好处就是便于数据库版本的升级,连接数据库的算法如下:public DBHelper(Context context) / 创建数据库super(context, DATABASE_NAME,null, DATABASE_VERSION);public void onCreate(SQLiteDatabase db) / 创建时调用 db.execSQL(DATABASE_CREATE);public void onUpgrade(SQLiteDatabase db, int

25、oldVersion, int newVersion) / 版本更新时调用db.execSQL(DROP TABLE IF EXISTS File_Table);onCreate(db); Override / 在ContextProvider运行时自动创建数据库 public boolean onCreate() dbOpenHelper= new DBHelper(getContext(); return true;数据库如果创建不成功则抛出FIleNotFoundException异常3.2.2 操作数据库 Android对数据库的操作主要有插入、删除、更新、查询操作,在进行任何操作时都

26、必须指定一个Uri,才能对相应的表进行数据操作。/数据库删除操作Overridepublic int delete(Uri arg0, String arg1, String arg2) SQLiteDatabase db = dbOpenHelper.getWritableDatabase();try Db.delete(FileColumn.TABLE, arg1, arg2); catch (Exception ex) ex.printStackTrace();return 1;Override/数据库插入操作public Uri insert(Uri uri, ContentValue

27、s values) SQLiteDatabase db = dbOpenHelper.getWritableDatabase();long count = 0;try count = db.insert(FileColumn.TABLE, null, values); catch (Exception ex) ex.printStackTrace(); if (count 0) return uri;else return null;/ 数据库更新操作Overridepublic int update(Uri uri, ContentValues values, String selectio

28、n,String selectionArgs) SQLiteDatabase db = dbOpenHelper.getWritableDatabase();int i = 0;try i = db.update(FileColumn.TABLE, values, selection, null);return i; catch (Exception ex) return 0;3.2.3 数据显示程序是利用Cursor游标类指向数据表中的某一项,然后进行查询数据,用Log日志显示出来Override/数据库查询操作public Cursor query(Uri uri, String proj

29、ection, String selection,String selectionArgs, String sortOrder) SQLiteDatabase db = dbOpenHelper.getWritableDatabase();/ 依次参数为:表名,查询字段,where语句,替换,group by(分组),having(分组条件),order by(排序)Cursor cur = db.query(FileColumn.TABLE, projection, selection,selectionArgs, null, null, sortOrder);return cur;3.4

30、Android 音乐播放器的工程3.4.1 Android项目Android的四大基本组件:Activity(活动),Service(服务),BroadcastReceiver(广播),ContentProvider(内容提供者),各组件之间要进行切换需要一个意图或企图Intent类,通过启动StartIntent()方法来使各组件进行跳转Android的五大布局方式:LinearLayout(线性布局) FrameLayout(帧布局) TableLayout(表格布局) AbsoluteLayout(绝对布局) RelativeLayout(相对布局)五种布局方式可以相互嵌套,Androi

31、d各种漂亮的界面都是通过嵌套布局而实现的。Android的线程,以及线程之间通信的中介:Handler类Android数据库:在第三章已经介绍过了。这里不再介绍Android配置文件:AndroidManifest.Xml及res资源文件中各种属性 布局方式 引用的资源等Android系统将插件ADT集成到了Eclipse工具上,因此,一个Android程序启动后,系统会启动一个模拟器(Emulator)(图4.7),该模拟器是一款手机板的样式,拥有手机硬件的基本操作。我们也可以将右边的键盘通过代码属性设置将其隐藏,界面的大小可自由设定,目前最大支持800X600的分辨率。图 4.7 andr

32、oid模拟器4.4.2 Android工程程序结构Android工程基本结构目录包括:src (源代码)、gen(Android系统自动生成的常量)、Res(资源文件):主要存放程序界面的布局配置(.xml)文件和图片资源。AndroidMainfes.xml 是四大组件的驱动配置文件,有它的存在,Android程序的四大组件才可以正常的跳转。Android资源的类型和布局(图4.7)图 4.7 下图4.8.1 -图4.8.5为音乐播放器代码结构和各界面的配置文件,图像资源等,图4.8.1 为一个Android工程所必须的结构,图4.8.2为该播放器的.Java文件,图4.8.3为播放器所用到

33、的字符串,字体大小,字的颜色等配置文件,图4.8.4为 该播放器的各种界面的布局配置文件,图4.8.5为该播放器的图片资源。图 4.8.1 图 4.8.2 图 4.8.3 图 4.8.4 图 4.8.5 4.4.3 AndroidManifest.xml文件 Android系统的任何一个程序启动都需要AndroidManifest.xml来启动程序,任何一个新建的工程目录都会自动生成一个AndroidManifest.xml文件,此配置文件是整个程序能够正常运行的核心,它里面包含了Android SDK的版本,程序运行的默认Activity,当程序中的任何一个组件触发事件后,系统都会自动的去A

34、ndroidManifest.xml中寻找标识来作出相应的操作。任何一个AndroidManifest.Xml文件的格式都应为: Android系统有一个编码的规定,支持的编码是utf-8,当程序中出现乱码是,我们须将其编码格式转化为utf-8.在 AndroidManifest.xml中会在第一行声明一句:。它是该系统支持的版本和编码。在第二行定义了我们需要使用的架构,该架构来自xmlns:android=xmlns(XML namespace)是一个命名空间,它就像一条河的源头一样能让我们找到系统架构,每一个配置文件必须有这个xmlns,否则程序中的所使用的所有资源将无法找到。在appli

35、cation元素我们定义android:icon=drawable/iconandroid:label=string/app_name,android:icon是程序在手机中显示的图片,我们运用drawable/icon表示了对res/drawable目录下的icon.png的引用。string/app_name表示了对res/value目录下string.Xml中定义的app_name参数的引用。 这是系统确定的首先要启动的Activity是PlayRackActivity。在intent-filter选项中,有action和category等等属性,我们需要定义action的值为andro

36、id.intent.action.MAIN,category的值为android.intent.category.LAUNCHER,它们是系统的值,程序在解析到这些常用后就可以确定首先要启动的Activity。当我们需要通过一个组件触发另一个组件时,我们将设定action和category的其它属性值,系统会根据我们设定的属性值去AndroidManifest.Xml的application 中寻找标识,任何一个Activity的action和category是唯一,所以程序在任何时候都能唯一启动一个Activity,这样,不同的Activity之间的跳转就实现了。在AndroidManife

37、st.Xml中有一个根结点,它是我们需要定义的ADT版本,例如我们将其值设定为android:minSdkVersion=4,则表示此Android工程所用的版本为1.6,Android还有1.1、1.5、1.6、2.0、2.1这几个版本。如果我们需要对网络进行访问,比如打开一个网页,刚我还需要设置一个网络访问权限uses-permission,将其的值设置为android:name=android.permission.INTERNET,我们就可以访问网络了。当然uses-permission还有很多其它的权限,例如GPS定位权限,浏览器数据存取权限com.android.browser.p

38、ermission.READ_HISTORY_BOOKMARKS等等。当程序的任何一个组件要用到时,都必须在AndroidManifest.Xml文件中声明。四大组件要使用前都需要声明,其声明方式如下:其中声明provider时还需要声明其授权 authorities。每个组件里面还有很多的属性,会根据程序的具体需要定义不同的属性。过滤器intent-filter 有两种启动方式来启动界面:(1) 显示方式 显示方式是在代码中的直接启动组件,启动时会声明Intent,在它的构造方法Intent(组件1,组件2)中直接指定一个组件的名字,然后调用方法startIntent(intent)以启动指

39、定的组件。(2) 隐式方式隐式方式是通过过滤器来过滤完成的,启动的组件必须满足action和category的条件才能够启动该组件。这些属性是在AndroidManifest.Xml文件中声明的。两种启动方式都可以通过程序setAction(ACTION常量)和startActivity(intent)或配置文件两种方式来实现组件的跳转。第四章 播放器系统功能详细设计4.1音乐播放器主界面功能实现4.1.1 播放器主界面播放器主界面(图5.1)图 5.1Android的每一个可视化界面,都有其的唯一的布局配置文件,该文件里面有各种布局方式,和各种资源文件如图像,文字,颜色的引用,程序在运行时,

40、可以通过代码对各配置文件进行读取。这样就可以形成不同的可视化界面和炫丽的效果。播放器主界面是一个Activity,Android工程在每个activity启动的时候会首先执行Oncreate()方法,如下代码:OverridePublic void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState);setContentView(R.layout.play_rack);该方法主要执行界面的初始化操作,Activity有个设置布局的方法:Context.setContentView(layoutResID)

41、,参数为资源ID,该Id在工程目录res/layout下,主界面布局文件名为play_rack。下面为play_rack.xml布局文件代码结构如下: 在绝对布局下嵌套两种线性布局和,第一个实现了标题和歌曲名的显示位置,通过布局设置绝对坐标来控制标题的位置。每个布局内可以放置多种Widget(窗体部件)例如:等。每个Widget内有多种属性,可以设置该Widget的坐标,大小,背景和颜色等参数。在播放界面中,歌词显示为居中,实现方法代码如下:TextView android:layout_height=wrap_contentandroid:textColor=#8deeee android:id=+id/lrcTextandroid:layout_wi

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号