版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、物联网移动应用 开发课程设计题目 音乐播放器设计班 级 物联网1303学号2姓名 牟俊强指导老师2016年 6 月 25 日1. 项目需求当今社会的生活节奏越来越快, 人们对手机的要求也越来越高, 由于手机市场发展迅速, 使得手机操作系统也出现了不同各类,现在的市场上主要有三个手机操作系统,Windowsmobile , symbian ,以及谷歌的 Android 操作系统,其中占有开放源代码优势的 Android 系统有最大的发展前景。 那么能否在手机上拥有自己编写的个性音乐播放器呢?能的, 谷歌 Android 系统就能做到。 本文的音乐播放器就是基于谷歌 Android 手机平台的播放
2、器。Android : 是谷歌于 2007 年公布的开放式源代码手机系统, 它的开放性就优于其它封闭式的手机系统, 因此, 任何人都可能根据自己的喜好将手机系统中的所有功能重新编写。 这使得越来越多的人关注这个操作系统。 本次作品音乐播放器就是基于 Android 平台的。现今社会生活紧张, 而欣赏音乐是其中最好的舒缓压力的方式之一, 本项目的目的是开发一个可以播放主流音乐文件格式的播放器,本设计实现的主要功能是播放Mp3, Wav多种格式的音乐文件,并且能够控制播放,暂停,停止,播放列等基本播放控制功能,界面简明,操作简单。本项目是一款基于 Android 手机平台的音乐播放器, 使Andr
3、oid 手机拥有个性的多媒体播放器, 使手机显得更生动灵活化, 与人们更为接近, 让手机主人随时随地处于音乐视频的旋律之中。 使人们的生活更加多样化。 也使设计者更加熟练 Android 的技术和其它在市场上的特点。开发环境Eclipse、Android SDK 系统需求分析功能需求(用例图分析)根据项目的目标,我们可获得项目系统的基本需求,以下从不同角度来描述系统的需求,并且使用用例图来描述, 系统的功能需求,我们分成四部分来概括,即播放器的基本 控制需要,播放列表管理需求,播放器友好性需求和播放器 扩展卡需求。以下分别描述:播放器的用例图假设安装了音乐播放器的用户是系统的主要设计对象, 其
4、拥有以下操作,启动软件、播放音乐、暂停播放、停止播 放、退出软件,其用例图如下图 播放器基本用例图用例分析用例名称:启动软件参与者:用户目标:使得用户启动软件并加载手机和 sd卡上的音频文件到播放列表 前置条件:无基本事件流:1.用户启动软件2.播放器将播放列表中的当前的歌曲用例名称:播放参与者:用户目标:使得用户可以播放在播放列表中选中的歌曲 前置条件:播放器正在运行基本事件流:1.用户单击“播放”按钮2.播放器将播放列表中的当前的歌曲用例名称:暂停参与者:用户目标:使得用户可以暂停正在播放的歌曲 前置条件:歌曲正在播放且未停止和暂停 基本事件流:1.用户单击“暂停”按钮2.播放器将暂停当前
5、的歌曲用例名称:停止参与者:用户目标:使得用户可以停止正在播放的歌曲前置条件:歌曲正在播放或暂停基本事件流:1.用户单击“停止”按钮2.播放器将停止当前播放的歌曲用例名称:退出参与者:用户目标:使得用户退出或者后台播放音乐前置条件:程序在运行基本事件流:1.用户按返回键2.播放器退出或者进入后台播放3 .概要设计软件播放流程图Step1.启动软件后,软件自动检索手机和sd卡的音频文件, 并组织显示成列表.Step2.点击列表的歌曲名字。Step3.播放音乐。Step4.点击暂停,音乐暂停Step5.点击播放 转到step3Step6.点击停止停止播放音乐Step7.点击退出。暂停/退出软件图音
6、乐播放器流程图4 .界面展示软件部署系统编译生成apk文件,将apk文件拷到手机或者sd 卡中,直接打开即可安装启动软件打开软件后的界面歌曲列表界面歌曲列表界面播放界面5. 部分源代码以下给出功能实现代码, 布局, 风格等代码量过大, 放在压缩文件中文件夹显示文件如图所示播放器页面布局代码如下 <LinearLayout xmlns:android =""android:orientation ="vertical"android:layout_width="fill_parent"android:layout_height =
7、"fill_parent"android:background="drawable/tupian"<ListViewandroid:id="+id/android:list"android:layout_width ="fill_parent"android:layout height="200dip"android:layout_weight="1"android:drawSelectorOnTop="false"/><SeekBara
8、ndroid:id="+id/SeekBar01"android:layout_height ="wrap_content" android:layout_width="fill_parent"android:max ="100"android:progress="0"android:secondaryProgress="0"android:visibility="visible"/><TextViewandroid:layout_height
9、 ="wrap_content"android:layout_width="fill_parent"android:id="+id/currentProgress"/><TextViewandroid:layout_height ="wrap_content" android:layout_width="fill_parent"android:id="+id/curtimeandtotaltime"/><LinearLayoutandroid:orie
10、ntation="horizontal"android:layout_width ="fill_parent"android:layout_height="wrap_content"><ImageButtonandroid:id ="+id/front_button" android:layout_width ="wrap_content"android:layout_height="wrap_content"android:layout_marginLeft=&
11、quot;10dip"android:background="drawable/first1"/><ImageButtonandroid:id ="+id/stop_button"android:layout_width="wrap_content"android:layout_height="wrap_content"android:background="drawable/stop1"android:layout_marginLeft="10dip"
12、/><ImageButtonandroid:id ="+id/start_button"android:layout_width="wrap_content"android:layout_height="wrap_content"android:background="drawable/start1"android:layout_marginLeft="10dip"/> <ImageButtonandroid:id="+id/pause_button"
13、android:layout_width="wrap_content"android:layout_height="wrap_content"android:background ="drawable/pose1'android:layout_marginLeft="10dip"/><ImageButtonandroid:id="+id/next_button"android:layout_width="wrap_content"android:layout_hei
14、ght="wrap_content"android:background ="drawable/next1"android:layout_marginLeft="10dip"/></ LinearLayout ></ LinearLayout >代码如下importclass MainActivityextends ListActivity private ImageButton mFrontImageButton = null; private ImageButton mStopImageButton
15、= null; private ImageButton mStartImageButton = null; private ImageButton mPauseImageButton = null; private ImageButton mNextImageButton = null;/*定义进度handler ,显示百分比进度*/ Handler mPercentHandler = new Handler。;private SeekBar mSeekBar=null;private TextView curProgressText=null;private TextView curtime
16、AndTotaltime=null;public MediaPlayer mMediaPlayer;private List<String> mMusicList = new ArrayList<String>();private int currentListItem = 0;private static final String MUSIC_PATH = new String("/sdcard/");OverridepublicvoidonCreate(BundlesavedInstanceState) (savedInstanceState);
17、setContentView musicList();mMediaPlayer = new MediaPlayer();initmFrontMusic();initStopMusic();initStartMusic();initPauseMusic();initNextMusic();initSeekBar();public void initmFrontMusic() mFrontImageButton(ImageButton)findViewById(newOnClickListener()public void onClick(View arg0) if(-currentListIte
18、m >= 0) currentListItem = ();elseplayMusic(MUSIC_PATH(currentListItem););public void initStopMusic()mStopImageButton(ImageButton)findViewById(newOnClickListener()public void onClick(View arg0) if()(););public void initStartMusic()mStartImageButton(ImageButton)findViewById(newOnClickListener()publ
19、ic void onClick(View arg0) playMusic(MUSIC_PATH(currentListItem);startSeekBarUpdate(););public void initPauseMusic()mPauseImageButton(ImageButton)findViewById(newOnClickListener()public void onClick(View arg0) if()();else(););public void initNextMusic() mNextImageButton (ImageButton)findViewById(new
20、OnClickListener()public void onClick(View arg0) nextMusic(); );public void initSeekBar()/* 初始化拖动条和当前进度显示值*/mSeekBar=(SeekBar)findViewById curProgressText=(TextView)findViewById curtimeAndTotaltime=(TextView)findViewById(new OnSeekBarChangeListener() public void onProgressChanged(SeekBar seekBar, int
21、 progress,boolean fromUser) /* 如果拖动进度发生改变,则显示当前进度值 */(" 当前进度 : " + progress);publicvoidonStartTrackingTouch(SeekBar arg0) (" 拖动中 .");publicvoidonStopTrackingTouch(SeekBar arg0) int dest = ();int mMax = ();int sMax = ();(mMax*dest/sMax););private void playMusic(String path)try ();
22、(path);();();(new OnCompletionListener()publicvoidonCompletion(MediaPlayer arg0) nextMusic(););catch (IOException e) ();private void nextMusic()if(+currentListItem >= ()currentListItem = 0; elseplayMusic(MUSIC_PATH+(currentListItem); Overridepublic boolean onKeyDown(int keyCode, KeyEvent event) if(keyCode = ();();return (keyCode, event);Overrideprotected void onListItemClick(ListVi
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中美洲2024年原材料供应协议
- 养殖场动物疫病防治服务合同(2025年度)3篇
- 2025版围栏施工安全风险评估与应急预案合同3篇
- 2025年度买卖合同担保条款修订版及风险防范策略
- 二零二五年度供暖设施安全检测与暖气安装合同样本
- 二零二五年度共有产权住房定金监管及分配合同4篇
- 2025年旋挖桩施工现场垃圾处理与环保合同3篇
- 二零二五年度厨具设备环保材料采购合同4篇
- 2025年度媒体广告创意策划与执行合同
- 二零二五版集成电路技术设计保密与全球市场拓展协议3篇
- 智慧校园信息化建设项目组织人员安排方案
- 浙教版七年级上册数学第4章代数式单元测试卷(含答案)
- 一病一品成果护理汇报
- AQ-T 1009-2021矿山救护队标准化考核规范
- 盐酸埃克替尼临床疗效、不良反应与药代动力学的相关性分析的开题报告
- 消防设施安全检查表
- 组合结构设计原理 第2版 课件 第6、7章 钢-混凝土组合梁、钢-混凝土组合剪力墙
- 建筑公司资质常识培训课件
- GB/T 26316-2023市场、民意和社会调查(包括洞察与数据分析)术语和服务要求
- 春节值班安全教育培训
- 带状疱疹护理查房
评论
0/150
提交评论