2022年音乐播放器的详细设计分享 .pdf
音乐播放器详细设计1. 引 言随着社会的快速发展, 现今社会生活紧张, 而欣赏音乐是其中最好的舒缓压力的方式之一,音乐成了我们生活工作中的一个重要的部分。而3G 时代的到来,手机移动应用越来越普遍。此文档就是为了能更好地设计出一个基于android 系统的音乐播放器而编写的。1.1 编写目的为软件的开发者能更好的理解和明确软件开发的详细过程,安排项目与进度、组织软件开发与测试,撰写本文档。本文档供项目组成员,软件开发人员参考。1.2 项目背景本项目由本组成员联合开发,实现播放现今流行的音乐MP3 等文本格式。该软件是基于 Android 系统的音乐播放软件, 并能够与其他音乐播放软件兼容。1.3 参考资料1 清华 ITandroid 应用开发2 可行性分析3 音乐播放器需求分析书4 音乐播放器总体设计说明书2. 总体设计2.1 项目目的本项目的目的是开发一个可以播放主流的音乐文本格式的名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 6 页 - - - - - - - - - 播放器。设计的主要实现功能是播放MP3 等格式的音乐文件,并且能控制播放,暂停,停止,音量控制,选择上一曲,选择下一曲,更改皮肤,歌曲列表文件的管理操作,在线播放,读取存储卡播放等多种播放控制,界面简明,操作简单。软件系统检测到错误行为时,报告错误,并提示处理操作。2.2 软件运行环境硬件:Android 操作系统手机系统软件: Android 2.2 - 4.0 版本2.3 需求概述根据项目,我们可以获得项目系统的基本需求,从功能需求、界面需求、性能需求、可靠性要求四个方面来描述系统的需求,再分别对各个需求进行分析。并实现具体功能。2.4 软件结构音乐播放器曲库功能菜单随便听听搜库退出播放控制设置播放暂停停止上一曲下一曲退出名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 6 页 - - - - - - - - - 3. 程序描述3.1 歌曲界面控制歌曲界面控制可分为:播放/暂停/停止模块、上一曲 /下一曲模块、音量模块。3.1.1 播放/暂停/停止模块流程图开始点击事件是否为播放暂停暂停停止播放获取当前状态播放歌曲结 束是否为播放是否为播放暂停歌曲停止歌曲获取当前状态获取当前状态名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 6 页 - - - - - - - - - 程序逻辑:当用户点击播放暂停 停止按钮时,播放器就对当前播放事件监听从而控制当前音乐的播放暂停 停止,当点击播放按钮时,判断当前的状态值是什么状态如果是播放状态并发送暂停的命令,如果是暂停的状态并发送播放的命令。如果是播放到一半的话,继续播放的命令3.1.2 上一曲 下一曲模块流程图:开始结束单击事件上一曲下一曲获取当前歌曲位置获取当前歌曲位置有无后继有无前驱跳转到上一曲目跳转到下一曲目名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 6 页 - - - - - - - - - 程序逻辑:当用户点击上一曲下一曲按钮时,播放器就对当前播放事件监听,从音乐列表中转换音乐,从而控制当前音乐的上一曲 下一曲,创建上一曲的监听器监听上一曲,并创建下一曲的监听器监听下一曲。/设置 SeekBar的监听事件setOnSeekBarChangeListener(new OnSeekBarChangeListener() /当停止拖动时调用的方法public void onStopTrackingTouch(SeekBar seekBar) public void onStartTrackingTouch(SeekBar seekBar) /当 SeekBar拖动时会执行此方法public void onProgressChanged(SeekBar seekBar, int prog, boolean fromUser) /fromUser 参数意思是判断拖动是否是用户用手拖动的if (fromUser = true & Math.abs(prog - progress) = 5) progress = prog; Intent i = new Intent(MusicService.MUSIC_CONTROL); int cmd = MusicService.CMD_SEEK;/发送拖动的命令i.putExtra(cmd, cmd); i.putExtra(progress, progress);/ 讲拖动的进度传进Service sendBroadcast(i); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 6 页 - - - - - - - - - sb.setProgress(progress); ); 4. 软件测试根据制定的软件实施计划,对软件进行测试,主要目的为了找出软件中存在的各种错误和缺陷,设计出更高效的软件测试方案。本项目的该音乐软件采用动态执行测试,对软件的功能,结构进行测试,通过运行该软件来检验程序的各个功能是否能够正确运行,各个模块之间能否进行无差错的转换,能否实现对歌曲的无差错播放,控制。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 6 页 - - - - - - - - -