版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于Android平台的音乐播放器设计班级:指导老师:学生:1.基于Android平台的音乐播放器设计班级:1.目录一、课题简介二、需求分析三、概要设计四、详细设计五、效果展示2.目录一、课题简介2.项目背景随着计算机的广泛运用,手机市场的迅速发展,各种音频视频资源也在网上广为流传,这些资源看似平常,但已经渐渐成为人们生活中必不可少的一部分了。于是各种手机播放器也紧跟着发展起来,但是很多播放器一味追求外观花哨,功能庞大,对用户的手机造成了很多资源浪费,比如CPU,内存等的占用率过高,在用户需要多任务操作时,受到了不小的影响,带来了许多不便,而对于大多数普通用户,许多功能用不上,形同虚设。针对以上各种弊端,选择了开发多语种的音频视频播放器,将各种性能优化,继承播放器的常用功能,满足一般用户听歌的需求。3.项目背景随着计算机的广泛运用,手机市场的迅速发展,各种音频视需求分析主要建设功能:导入本地歌曲文件,选择显示歌词,管理歌单等功能。交互设计:提供良好的交互设计操作简单快捷,按钮及菜单设计合理,合理引导用户使用界面颜色基调相似,操作习惯。风格相似。4.需求分析主要建设功能:导入本地歌曲文件,选择显示歌词,管理歌名称功能播放暂停音乐在该功能中,点击播放开始播放音乐,同时图标切换成相应的暂停图标,用户可以再次点击该按钮进行暂停操作,按钮也变成播放。上一首、下一首功能当歌曲在播放或者是暂停时用户可以点击相应的上一首下一首进行歌曲的切换,在切换中,如果当歌曲位于歌曲列表的边界时可以正常切换。拖动播放进度条在播放时会有一个进度条显示播放的进度,用户可以拖动进度条来控制播放位置。选择播放模式用户可以自主选择播放模式,单曲循环、随机或者是随机播放模式。下文将对本功能的核心用例进行具体的分析,如下表所示:5.名称功能播放暂停音乐在该功能中,点击播放开始播放音乐,同时图概要设计播放器对象之间的交互情况如图以视图树的方式展示Android中界面的布局方式6.概要设计播放器对象之间的交互情况如图以视图树的方式展示And详细设计播放器主界面是一个Activity,Android工程在每个activity启动的时候会首先执行Oncreate()方法。如下代码: PublicvoidonCreate(BundlesavedInstanceState){ super.onCreate(savedInstanceState);setContentView(R.layout.activity_main;}该方法主要执行界面的初始化操作,Activity有个设置布局的方法:Context.setContentView(layoutResID),参数为资源ID,该Id在工程目录res/layout下,主界面布局文件名为main。主界面主要采用相对布局(RelativeLayout)。7.详细设计播放器主界面是一个Activity,Android工2.播放音轨SeekBar在main.xml文件中,SeekBar的代码如下:<SeekBarandroid:id="@+id/se"android:layout_width="fill_parent"android:layout_height="13dp"
android:layout_centerVertical="true"android:layout_toRightOf="@id/sec"android:layout_toLeftOf="@id/min"android:maxHeight="2dp"android:thumb="@drawable/pic_14"android:thumbOffset="13dp"/>上面代码中有参数android:thumb="@drawable/pic_14"
为音轨游标的图片资源
播放器最重要的一部分就是音轨与歌曲进度同步的实现。音轨设置了两个TextView用来显示当前歌曲播放的进度时间和歌曲的长度如右图所示8.2.播放音轨SeekBar在main.xml文件中,Seek音轨对象SeekBar在歌曲刚开始播放的时候调用方法SeekBar.setMax(),参数传入歌曲的长度。SeekBar.setProgress(1)设置游标的起始进度为1。然后程序运行如下代码:classMybroadextendsBroadcastReceiver{
@Override
public
voidonReceive(Contextcontext,Intentintent){ //TODOAuto-generatedmethodstub
if(intent.getAction().equals("ACTION_MAXTIME")){
intmaxtime=intent.getIntExtra("maxtime",0); se.setMax(maxtime); time2.setText(""+settime(maxtime)); }
if(intent.getAction().equals("ACTION_NOWTIME")){
intnowtime=intent.getIntExtra("nowtime",0); se.setProgress(nowtime); time.setText(""+settime(nowtime)); }
if(intent.getAction().equals("ACTION_LRC")){ Stringlrc=intent.getStringExtra("geci"); //Toast.makeText(MainActivity.this,"剧本开始"+lrc,Toast.LENGTH_LONG).show(); showgeci.setText(""+lrc); }9.音轨对象SeekBar在歌曲刚开始播放的时候调用方法See
if(intent.getAction().equals("ACTION_NOWMUSIC")){ Stringnowmusic1=intent.getStringExtra("nowmusic"); //Toast.makeText(MainActivity.this,"剧本开始"+lrc,Toast.LENGTH_LONG).show(); nowmusic.setText("正在播放:"+nowmusic1); } } }
publicStringsettime(inttime){
intfen=time/60000;
intmiao=time/1000%60;
returnfen+":"+miao; } RunnablemRunnable=newRunnable(){
@Override
public
voidrun(){ //TODOAuto-generatedmethodstub nowtime(); handler.postDelayed(mRunnable,1000); } };10. if(intent.getAction().equal3.播放调节功能实现各按钮水平放置,从左到右依次是上一首、播放、下一首功能按钮。用的是布局中的线性布局LinearLayout,;将其设置为水平,
LinearLayout中依次放置播放/暂停,上一首、下一首按钮属性。配置文件代码结构如下:<RelativeLayout android:layout_width="fill_parent"android:layout_height="0dp"android:layout_weight="4"android:background="#7C6C48"> <ImageButton></ImageButton> <ImageButton></ImageButton> <ImageButton></ImageButton></RelativeLayout>11.3.播放调节功能实现各按钮水平放置,从左到右依次是上一首、播主要按钮功能实现代码:(1)“上一首”按钮并实现功能@Override
public
voidonClick(Viewv){ //TODOAuto-generatedmethodstub
switch(v.getId()){
caseR.id.shang: nextmusic(0); lastm.setImageResource(R.drawable.dianji_22);
break;(2)“播放”按钮并实现功能
caseR.id.play: isplay=!isplay;
if(isplay==true) { playm.setImageResource(R.drawable.dainji_20); }else{ playm.setImageResource(R.drawable.dianji_19); } musicplay(isplay);
break;(3)“下一首”并实现功能
caseR.id.xia: nextmusic(1); nextm.setImageResource(R.drawable.dianji_25);
break;12.主要按钮功能实现代码:12.
4.歌曲列表界面ListView同样有一个监听器list.setOnItemClickListener(newOnItemClickListener(){@OverridepublicvoidonItemClick(AdapterView<?>arg0,Viewarg1,intarg2,longarg3){}};,我们只要实现这个方法,就可以监听鼠标的点击事件,当鼠标点击到每一行时,可以通过publicObjectgetIte
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 妇产科外阴白色病变规范化诊疗研讨
- 海底世界教学设计
- 稳定河道工程设计方法
- 奶茶店装修设计方案
- 2025-2026学年22.1函数的概念同步训练人教版数学八年级下册 含答案
- (2026.05.24)在2026年全区年轻干部座谈会上的讲话
- 麻醉后恢复过程护理指南
- 电子商务平台美术设计
- 5岁幼儿课程设计
- cpld课程设计摘要
- 学工部建设方案
- 2026四川成都市属国企成都交子金融控股集团有限公司招聘27人笔试参考试题及答案解析
- 2026年四川省成都市锦江区中考语文二诊试卷(含详细答案解析)
- 2025江苏省苏豪控股集团招聘笔试历年常考点试题专练附带答案详解
- 2026届深圳二模数学试题+答案
- 疟疾防治进校园宣传课件
- 2026年新教材统编版初中语文八年级下册文学常识与内容理解必考知识点清单(附练习题)
- 劳动合同解除流程及范本指南
- 小学六年级下册英语(译林版三起)单元整合复习教案
- 2025北京海淀区五年级(下)期末英语试题及答案
- 2025版CSCO前列腺癌诊疗指南
评论
0/150
提交评论