软件设计说明书(音频播放器毕业设计)_第1页
软件设计说明书(音频播放器毕业设计)_第2页
软件设计说明书(音频播放器毕业设计)_第3页
软件设计说明书(音频播放器毕业设计)_第4页
软件设计说明书(音频播放器毕业设计)_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Android课程设计软件设计说明书目录1引言11.1编写目的11.2背景说明11.3定义11.4 参考资料12总体设计22.2运行环境22.2.1设备22.2.2支持软件22.3基本设计概念和处理流程22.4结构设计42.4.1结构42.4.2功能需求与程序的关系52.4.3尚未问决的问题62.5接口设计62.5.1用户接口62.5.2外部接口63系统出错处理设计63.1出错信息63.2补救措施63.3. 系统维护设计74音乐播放器主界面功能实现74.1程序描述74.2功能74.3算法74.4注释设计114.5测试计划125音乐列表设计125.1 程序描述125.2 功能125.3 算法12

2、5.4 注释设计135.5 测试计划146扫描音乐设计146.1 程序描述146.2 功能146.3 算法146.4 注释设计156.5 测试设计167 上一曲/下一曲设计167.1 程序描述167.2 功能167.3 算法167.4 注释设计187.5 测试设计188 播放/暂停设计188.1 程序描述188.2 功能188.3 算法188.4 注释设计208.5 测试设计209 音量增加/减少设计209.1 程序描述209.2 功能209.3 算法209.4 注释设计229.5测试设计221引言1.1编写目的现在社会快速,繁重紧张,音乐欣赏可以使人放松,听音乐也可以提高人的情操。本项目的目

3、的是开发一款可以播放音乐文件的音乐播放器,并可以控制暂停,控制播放。音量调节,关闭播放器等功能。本软件适用于各种人。随着见算计的广泛应用,手机市场的迅速发展,各种音频视频资源也在网上广为流传。这些资源看似平常,但已经渐渐成为人们生火中不可缺少高的一部分了。于是各种手机播放器也随着发展起来了,但是市面上的手机播放器的软件大部分是最求外观花哨,功能庞大。这样虽然好但是对手机资源造成的很大的浪费,比如CPU,内存使用过高。在用户需要多操作时受到不小的影响,带来了许多不便,许多功能上形同虚设!我认为术业有专攻,做音乐播放器,就要最好音乐部分。针对以上弊端,选择开发界面简单模块化的,功能明确,方便实用,

4、不占内存。1.2背景说明 文中所介绍的视频播放器是基于安卓手机平台开发的一款多功能的播放器,实现了基本的播放,快进快退停止视频调节音量的功能,用户可以自由拖动那个进度条,调节屏幕缩放比列,设置屏幕背景,设置视频播放模式。任外还有任意级目录,播放列表有缩略图,并且能够排序,最重要的是该播放器还实现了查看天气预报的功能。1.3定义Android SDK(SoftwareDevelopmentKit) 软件开发工具包1.4 参考资料 Android一词的本义指“机器人”,同时也是Google于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应

5、用软件组成,号称是首个为移动终端打造的真正开放和完整的移动软件。 Android是基于Linux内核的软件平台和操作系统,早期由Google开发(在华注册商标名为“安致”),后由开放手机联盟(Open Handset Alliance)开发。它采用了软件堆层(software stack,又名以软件叠层)的架构,主要分为三部分。低层以Linux内核工作为基础,只提供基本功能;其他的应用软件则由各公司自行开发,以Java作为编写程序的一部分。另外,为了推广此技术,Google和其它几十个手机公司建立了开放手机联盟。Android在未公开之前常被传闻为Goo

6、gle电话或gPhone。大多传闻认为Google开发的是自己的手机电话产品,而不是一套软件平台。到了2013年11月,Google开始发表自家品牌手机电话的Nexus One。目前最新SDK版本为Android 4.4。2总体设计2.1需求规定 功能需求定义了开发人员必须实现的软件功能,使得用户能完成他们的任务,从而满足了用户的业务需求。用户需求文档描述了用户使用产品必须要完成的任务。针对音乐播放器分别对音乐播放、在线音乐播放及会员特权的换肤等功能进行详细的调研和分析,总结出如下的用户需求信息。(1) 界面美观 简洁。(2) 运行方便,操作简单。(3) 经济适用,功能充实

7、。2.2运行环境2.2.1设备(1) 支持Android 1.6版本以上的安卓系统手机。(2) 支持屏幕任何尺寸的安卓手机。(3) 支持安卓模拟器运行。2.2.2支持软件(1) 支持安卓操作系统软件。(2) 支持装有安卓模拟器的windows操作系统。(3) 支持安卓模拟器2.3基本设计概念和处理流程功能用例图如下: 图 2-3 功能用例图 表3-1 播放用例用例名称:播放参与者:用户目标:用户点击播放音乐列表中的歌曲前置条件:播放器正在运行基本事件流:1.用户单击列表中歌曲 2.播放器将播放列表中的点击的歌曲 表3-2 暂停用例 用例名称:暂停参与者:用户目标:使得用户可以暂停正在播放的歌曲

8、前置条件:歌曲正在播放且未停止和暂停基本事件流:1.用户单击“暂停”按钮 2.播放器将暂停当前的歌曲 表3-4 上一首/下一首用例用例名称:上一首/下一首参与者:用户目标:使得用户可以点播上一首或下一首音乐前置条件:歌曲正在播放或歌曲暂停中基本事件流:1.用户单击“上一首或下一首”按钮 2.播放器将播放上一首歌曲或下一首歌曲 表3-5 音乐列表用例用例名称:音乐列表参与者:用户目标:使得用户可以进入音乐列表前置条件:程序在运行基本事件流:1.用户单击“音乐”分区 2.播放器进入音乐列表2.4结构设计2.4.1结构程序流程图如下: 图2-4-1 系统流程图 表2-4-1 功能关系表功能类别子功能

9、子功能音乐列表播放列表菜单退出播放关于音乐列表点击播放->进入播放界面播放界面播放播放歌曲->线程启动->时间更新暂停暂停歌曲->线程暂停->时间暂停初曲寻找音乐列表第一首歌曲终曲寻找音乐列表最后一首歌曲上一首寻找当前播放的上一ID歌曲下一首寻找当前播放下一ID歌曲主菜单退出程序程序退出关于版权信息表2-4-2音乐列表用例用例名称:音乐列表参与者:用户目标:使得音乐列表显示歌曲名称,右边显示时间长度前置条件:播放器在主界面基本事件流:1.用户单击主界面上音乐模块 2.音乐列表显示以音乐排列的列表2.4.2功能需求与程序的关系 表2-4-2 功能关系表功能类别子功能

10、子功能音乐列表播放列表菜单退出播放关于音乐列表点击播放->进入播放界面播放界面播放播放歌曲->线程启动->时间更新暂停暂停歌曲->线程暂停->时间暂停初曲寻找音乐列表第一首歌曲终曲寻找音乐列表最后一首歌曲上一首寻找当前播放的上一ID歌曲下一首寻找当前播放下一ID歌曲主菜单退出程序程序退出关于版权信息2.4.3尚未问决的问题功能不是很完善,不能实现歌词功能,文件必须是在SD卡中MYmusic文件下才能播放。2.5接口设计2.5.1用户接口 触摸结构,当用户触摸屏幕上的按钮,按钮就开始工作。2.5.2外部接口(1) 软件接口:操作系统:Windows xp&

11、#160;支持环境:Android 2.1版本 开发环境:Eclipse 3.5 ADT 0.9(2) 硬件接口:支持USB 2.0。3系统出错处理设计3.1出错信息出错提示原因解决方法程序运行停止手机内存不足或程序被中断重启应用手机内存不足手机内存不足清理手机内存找不到SD卡没有文件路径装载SD卡,重启音乐不能播放文件损坏或播放路径不对将音乐文件放在指定文件夹中3.2补救措施说明故障出现后可能采取的变通措施,包括:1. 程序运行停止: 解决办法: 重启应用 2. 手机内存不足: 解决办法:清理手机内存 3. 找不到SD卡: 解决办法:装载SD

12、卡,重启 4. 音乐不能播放: 解决办法:将音乐文件放在指定文件夹中3.3. 系统维护设计为了系统维护的方便而在程序内部设计中作出了安排,本软件是音乐播放软件,与手机内存相关联。在维护上只涉及到音乐跟新问题,还有主题界面的更换。由于与手机内存相关联,所以在维护上不必花费太多资源。4音乐播放器主界面功能实现4.1程序描述 设计程序主界面,增加主界面的美观,以及和用户之间的交互性。通过UI设计UML文件设计,使用控件布局,代码相结合。完美设计出主界面。4.2功能 主界面明确了当,直接的显示出可操作的按钮。让用户更加简单,使用本软件。4.3算法 界面如下: 图5-3-1 主界面Uml 布局代码如下&

13、lt;?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android=" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" android:gravity="fill" android:background="#000000&q

14、uot;> <LinearLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <LinearLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="hor

15、izontal" android:layout_weight="80" > <ListView android:id="+id/list" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="#E61344" android:layout_weight="25" android:layout_marginBottom=&quo

16、t;2dp" > </ListView> <LinearLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" android:layout_weight="75" /> <Button android:id="+id/liebiao1" android:layout_width="

17、;fill_parent" android:layout_height="fill_parent" android:layout_weight="1" android:background="drawable/liebiao" android:layout_marginLeft="2dp" android:layout_marginBottom="2dp" /> <Button android:id="+id/zengyin1" android:layo

18、ut_width="fill_parent" android:layout_height="fill_parent" android:layout_weight="1" android:background="drawable/jiayin" android:layout_marginLeft="2dp" android:layout_marginBottom="2dp" /> <Button android:id="+id/jianyin1"

19、 android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_weight="1" android:background="drawable/jianyin" android:layout_marginLeft="2dp" android:layout_marginBottom="2dp" /> <Button android:id="+id/

20、guanji" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_weight="1" android:background="drawable/guanji" android:layout_marginLeft="2dp" android:layout_marginBottom="2dp"/> </LinearLayout>

21、</LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:layout_weight="5" > <Button android:id="+id/bofang" android:layout_width="wrap_content

22、" android:layout_height="wrap_content" android:layout_weight="1" android:background="drawable/bofang" android:layout_marginRight="1dp" android:layout_marginBottom="2dp"/> <Button android:id="+id/zanting" android:layout_width=&quo

23、t;wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:background="drawable/zanting" android:layout_marginLeft="1dp" android:layout_marginBottom="2dp"/> </LinearLayout> <LinearLayout android:layout_wid

24、th="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:layout_weight="5" > <Button android:id="+id/shangyiqu" android:layout_width="wrap_content" android:layout_height="wrap_content"

25、android:layout_weight="1" android:background="drawable/shangyiqu" android:layout_marginRight="1dp" /> <Button android:id="+id/xiayiqu" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight=&quo

26、t;1" android:background="drawable/xiyishou" android:layout_marginLeft="1dp"/> </LinearLayout> </LinearLayout></LinearLayout>Java代码如下protected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState);setContentView(R.layout.main3);4.4注释

27、设计1. 加在模块首部的注释::主界面的设计2. 加在各分枝点处的注释:增音控件按钮,减音按钮,下一曲按钮,上一曲按钮,播放暂停按钮。4.5测试计划 运行程序,显示如果和图5-3-1一样,说明界面设计合理,不一样说明界面设计不合理5音乐列表设计5.1 程序描述播放列表中存放音乐文件名字,点击文件名字,即可播放音乐,列表存放的方式是数列模式。5.2 功能播放列表有存放音乐文件,点击音乐文,即可播放。5.3 算法 UML代码: <ListView android:id="+id/list" android:layout_width="fill_parent&qu

28、ot; android:layout_height="fill_parent" android:background="#E61344" android:layout_weight="25" android:layout_marginBottom="2dp" > </ListView>Java代码:private List<String> audioList = new ArrayList<String>(); / 要播放的音频列表SuppressLint("Sd

29、CardPath")private void audioList() getFiles("/sdcard/"); / 获取SD卡上的全部音频文件ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, audioList); / 创建一个适配器ListView listview = (ListView) findViewById(R.id.list); / 获取布局管理器中添加的ListView组件lis

30、tview.setAdapter(adapter); / 将适配器与ListView关联/ 当单击列表项时播放音乐listview.setOnItemClickListener(new OnItemClickListener() Overridepublic void onItemClick(AdapterView<?> listView, View view,int position, long id) currentItem = position; / 将当前列表项的索引值赋值给currentItemplayMusic(MUSIC_PATH+audioList.get(curr

31、entItem); / 调用playMusic()方法播放音乐);5.4 注释设计 要播放的音频列表 获取SD卡上的全部音频文件 将适配器与ListView关联 当单击列表项时播放音乐 将当前列表项的索引值赋值给currentItem 调用playMusic()方法播放音乐5.5 测试计划 运行程序,扫描音乐,点击列表文件,听音乐,是否有音乐播放。6扫描音乐设计6.1 程序描述 本段程序是将SD卡上的音乐文件,进行扫描,并将文件加载到播放列表中。6.2 功能 点击扫描音乐按钮,进行音乐文件扫描,扫描SD卡上的所有MP3格式的音乐文件。将扫描后的音乐文件加载到播放列表中。6.3 算法UML 代码

32、:<Button android:id="+id/bofang" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:background="drawable/bofang" android:layout_marginRight="1dp" android:layout_marginBottom="2

33、dp"/>Java 代码:private void getFiles(String url) File files = new File(url); / 创建文件对象File file = files.listFiles();try for (File f : file) / 通过for循环遍历获取到的文件数组if (f.isDirectory() / 如果是目录,也就是文件夹getFiles(f.getAbsolutePath(); / 递归调用 else if (isAudioFile(f.getName() / 如果是音频文件audioList.add(f.getName

34、(); / 将文件的路径添加到list集合中 catch (Exception e) e.printStackTrace(); / 输出异常信息private static String imageFormatSet = new String ".mp3" ; / 合法的音频文件格式/ 判断是否为音频文件private static boolean isAudioFile(String path) for (String format : imageFormatSet) / 遍历数组if (path.contains(format) / 判断是否为有合法的音频文件retur

35、n true;return false;6.4 注释设计 创建文件对象 通过for循环遍历获取到的文件数组 如果是音频文件 将文件的路径添加到list集合中 合法的音频文件格式 判断是否为音频文件6.5 测试设计 运行程序,当成点击扫描音乐按钮,等待程序扫描,判断是否有音乐文件在列表中。如果有,说明本段程序实用。否则则不适用,需要再次设计。7 上一曲/下一曲设计 7.1 程序描述本段程序实现音乐上一曲下一曲的播放,当点击上一曲或下一曲的时候,播放器会对播放列表的文件进行上一曲或下一曲的播放。 7.2 功能当点击上一曲或下一曲的时候,播放器会对播放列表的文件进行上一曲或下一曲的播放。 7.3 算

36、法 UML 代码: <Button android:id="+id/shangyiqu" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:background="drawable/shangyiqu" android:layout_marginRight="1dp" /> <Button and

37、roid:id="+id/xiayiqu" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:background="drawable/xiyishou" android:layout_marginLeft="1dp"/> Java 代码: / 下一首void nextMusic() if (+current

38、Item >= audioList.size() / 当对currentItem进行+1操作后,如果其值大于等于音频文件的总数currentItem = 0;playMusic(MUSIC_PATH+audioList.get(currentItem); / 调用playMusic()方法播放音乐/ 上一首void preMusic() if (-currentItem >= 0) / 当对currentItem进行-1操作后,如果其值大于等于0if (currentItem >= audioList.size() / 如果currentItem的值大于等于音频文件的总数cu

39、rrentItem = 0; else currentItem = audioList.size() - 1; / currentItem的值设置为音频文件总数-1playMusic(MUSIC_PATH+audioList.get(currentItem); / 调用playMusic()方法播放音乐 7.4 注释设计 下一首 上一首 当对currentItem进行+1操作后,如果其值大于等于音频文件的总数 调用playMusic()方法播放音乐 7.5 测试设计 采用黑盒测试,当运行程序后,扫描文件后,并放音乐后,点击上一曲,判断音乐是否能进行下一曲,能行说明程序功能合适,再次进行下一曲测

40、试。8 播放/暂停设计 8.1 程序描述本段程序实现了播放音乐和暂停音乐的功能,当点击音乐播放/暂停按钮的候,点击一下,音乐会播放,再点击以下,音乐会暂停。 8.2 功能 当点击音乐播放/暂停按钮的候,点击一下,音乐会播放,再点击以下,音乐会暂停。 8.3 算法UML 代码: <Button android:id="+id/zanting" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight=

41、"1" android:background="drawable/zanting" android:layout_marginLeft="1dp" android:layout_marginBottom="2dp"/> Java 代码: pause.setOnClickListener(new OnClickListener() Overridepublic void onClick(View v) if (mediaPlayer.isPlaying() mediaPlayer.pause(); / 暂停视频

42、的播放(Button) v).setText("继续"); else mediaPlayer.start();/继续播放(Button) v).setText("暂停"););/ 播放音乐void playMusic(String Path) try if (mediaPlayer.isPlaying() mediaPlayer.stop(); / 停止当前音频的播放mediaPlayer.reset(); / 重置MediaPlayermediaPlayer.setDataSource(Path); / 指定要播放的音频文件mediaPlayer.prepare(); / 预加载音频文件mediaPlayer.start(); / 播放音频pause.setText("暂停");pause.setEnabled(true); / 设置“暂停”按钮可用 catch (Exception e) e.printStackTrace(); 8.4 注释设计 播放音乐 重置MediaPlayer 指定要播放的音频文件 预加载音频文件 设置“暂停”按钮可用8.5 测试设计 黑盒测试,当运行程序后,点击音乐文件播放,当点击暂停按钮的时候,看音乐是否暂停,当点击播放按

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论