版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1.1项目背景 在研究了各种市场上流行的手机播放器,了解它们各自的插件及编码方式,还有各种播放器播放的特别格式文件,分析各种编码的优缺点以及各种播放器本身存在的缺陷和特点,编写出功能实用,使用方便快捷的播放器。目前已经实现的功能有能播放常见音频文件的功能,如MP3,WAV,等,拥有播放菜单,能选择播放清单,具备一般播放器的功能,如快进,快退,音量调节等。播放模式也比较完善,有单曲,顺序,循环,随机播放等模式1.2编写目的现今社会生活紧张,而欣赏音乐是其中最好的舒缓压力的方式之一,本项目的目的是开发一个可以播放主流音乐文件格式的播放器,本设计的实现的这主要功能是播放Mp3格式的音乐文件,并且能够控制播放,暂停,停止,上一曲,下一曲,音量调节,视觉外观,播放列表和歌曲文件的管理操作等多种播放控制功能,界面简明,操作简单。2.1功能需求(用例图分析)2.1功能需求(用例图分析)根据项目的目标,我们可获得项目系统的基本需求,以下从不同角度来描述系统的需求,并且使用用例图来描述,系统的功能需求,我们分成四部分来概括,即播放器的基本控制需要,播放列表管理需求,播放器友好性需求和播放器扩展卡需求。以下分别描述: 2.1.1播放器的基本控制需求 2.1.2播放清单列表管理需求
当用户选中列表中某一项歌曲,就有的需求:2.1.3播放友好性需求2.1.4播放器扩展卡需求2.1.5功能需求(时序图)分析Android数据库设计
3.1数据库及字段属性设计
表包括Music_List,Music,Music2主要是保存歌曲名字、路径 字段说明:Id歌曲id号Name歌曲名字Path歌曲路径3.2数据库连接 Android中自带SQLite数据库,这是一个十分小型的数据库,这样正适合Android这种移动平台使用。Android数据库存储的位置data/data/<项目文件夹>/databases/目录下Android是利用SQLiteOpenHelper数据库帮助类来进行对数据库的创建和操作。程序中数据库类为DataBaseextendsSQLiteOpenHelper(继承关系)。3.2.1创建数据库 publicclassDataBaseextendsSQLiteOpenHelper{ /*构造方法,创建数据库和表*/ publicDataBase(Contextcontext){ super(context,DATABASE_NAME,null,VERSION); }
publicvoidonCreate(SQLiteDatabasedb){ try{
}catch(Exceptione){
} } publicvoidonUpgrade(SQLiteDatabasedb,intoldVersion,intnewVersion){
onCreate(db) } }
3.2.2操作数据库
Android对数据库的操作主要有插入、删除、更新、查询操作,在进行任何操作时都必须指定一个关键字,才能对相应的表进行数据操作,这里我们指定的是path关键字。3.2.3数据查询和显示 程序是利用Cursor游标类指向数据表中的某一项,然后进行查询数据,数据显示使用的是专门的数据库适配器SimpleCursorAdapterAndroid项目MusicPlayer介绍Android的四大基本组件:Activity(活动),Service(服务),BroadcastReceiver(广播),ContentProvider(内容提供者),各组件之间要进行切换需要一个意图或企图Intent类,通过启动StartIntent()方法来使各组件进行Activity的跳转,通过启动StartService是()方法来启动服务,通过stopServices()方法来停止服务。Android的五大布局方式:LinearLayout(线性布局)FrameLayout(帧布局)TableLayout(表格布局)AbsoluteLayout(绝对布局)RelativeLayout(相对布局)五种布局方式可以相互嵌套,Android各种漂亮的界面都是通过嵌套布局而实现的。Android的线程,以及线程之间通信的中介:Handler类Android数据库:在第三部分已经介绍过了。这里不再介绍Android配置文件:AndroidManifest.Xml及res资源文件中各种属性布局方式引用的资源等Android系统将插件ADT集成到了Eclipse工具上,因此,一个Android程序启动后,系统会启动一个模拟器(Emulator)(图4.7),该模拟器是一款手机板的样式,拥有手机硬件的基本操作。我们也可以将右边的键盘通过代码属性设置将其隐藏,界面的大小可自由设定。 4.4.2Android工程程序结构音乐播放器代码结构5.播放器系统功能详细设计
5.1音乐播放器主界面功能实现播放器主界面 5.1.2播放界面音轨的实现publicvoidhandleMessage(Messagemsg){ if(mp!=null&&misplaying){ intcurpoint=mp.getCurrentPosition(); time_time=curpoint; total_time=totalpoint; seekbar.setProgress(curpoint); settotal_time(total_time); settime_time(time_time); } }拖动进度条可以实现快进和快退的功能实现代码如下:seekbar.setOnSeekBarChangeListener(newOnSeekBarChangeListener()//拖动进度条事件响应 {publicvoidonProgressChanged(SeekBarseekBar,intprogress, } } publicvoidonStartTrackingTouch(SeekBarseekBar){}publicvoidonStopTrackingTouch(SeekBarseekBar){ } }); 5.1.2播放器播放、暂停、停止等功能
android的媒体播放原理:android源程序已经为我们封装好了一个接口类,叫MediaPlayer。该接口在执行行需要一个数据源,通过如下四个步骤: 第一步:MediaPlayer.reset();复位操作,为以后的媒体准备播放作准备。 第二步:传入歌曲数据源,这里也是一个数据流MediaPlayer.setDataSource(Stringpath);参数需要传一个路径,该接口类在收到路径后将其转化为数据源。 第三步:准备播放数据源,调用方法MediaPlayer.Prepare(); 第四步:MediaPlayer.Start();播放数据源,该数据源播放后,不再与程序有关,需要用MediaPlayer.Stop()方法让其停止或MediaPlayer.Start();让其启动;5.1.3设置播放模式功能界面效果如下图:界面实现如下代码所示:/**Menu菜单设置 */publicbooleanonCreateOptionsMenu(Menumenu){ menu.add(0,0,1,"关于"); menu.add(0,1,1,"退出"); menu.add(1,2,1,"顺序循环"); } 播放模式功能代码结构实现如下:(具体见附录) publicvoidsingle_play(){} publicvoidqueue_play(){}5.2播放列表功能界面列表事件响应如下protectedvoidonListItemClick(ListViewl,Viewv,intposition,longid){ finalMyDialogmydialog=newMyDialog(FileListActivity.this,"操作选项"); mydialog.show(); mydialog.listView.setOnItemClickListener(newOnItemClickListener(){ publicvoidonItemClick(AdapterView<?>arg0,Viewarg1,intarg2,longarg3){ mydialog.cancel();}}5.3对话框功能具体实现该对话框的代码结构如下:publicclassMyDialogextendsDialog{@Override protectedvoidonCreate(BundlesavedInstanceState){menuList=CreateMenu();CreateListView(menuList); }}publicList<DiaLogMenu>CreateMenu(){}publicvoidCreateListView(List<DiaLogMenu>menuList){}5.4数据存储方式SQLiteDatabase类SQLiteOpenHelper类5.5AndroidService本程序使用了Service功能实现播放,当Activity被销毁后,后台任然在进行音乐的播放,并且点击暂停后再点击退出,可以实现Service的摧毁。代码结构实现如下:publicclassPlayerServiceextendsService{@Override publicIBinderonBind(Intentintent){ //TODOAuto-generatedmethodstub
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 土地租赁协议2023
- 部编版六年级语文上册第八单元知识梳理填空
- (2024)1-4酸钠盐生产建设项目可行性研究报告(一)
- 2023年天津市益中学校高考语文模拟试卷
- 2023年家政服务项目融资计划书
- 零食行业蓝皮书
- 电力电缆模拟习题+参考答案
- 养老院老人生活设施维修人员管理制度
- 养老院老人访客管理制度
- 2024年旅游产品销售与推广合同3篇
- 财政投资评审咨询服务预算和结算评审项目投标方案(技术标)
- 理工英语3-01-国开机考参考资料
- 绵绵用力久久为功-坚持每天进步一点点初中期末动员班会-2023-2024学年初中主题班会课件
- 2024届湖北高三元月调考数学试卷含答案
- 视频会议系统保障方案
- 西方园林史智慧树知到期末考试答案章节答案2024年内蒙古农业大学
- 学年上学期期末职业高中高二年级数学练习试卷2
- 湖北省麻城市白鸭山矿区Ⅴ号矿段Ⅴ-1、Ⅶ号矿段Ⅶ-1、Ⅶ-5矿体饰面用花岗岩矿矿产资源开发利用与生态复绿方案
- 转基因的科学-基因工程智慧树知到期末考试答案章节答案2024年湖南师范大学
- 小学英语时态练习大全附答案
- 工程部设计部岗位职责
评论
0/150
提交评论