1、.1基于Android平台的音乐播放器设计班 级:指导老师: 学 生: .2目 录一 、课题简介二、需求分析三、概要设计四、详细设计五、效果展示.3项目背景随着计算机的广泛运用,手机市场的迅速发展,各种音频视频资源也在网上广为流传,这些资源看似平常,但已经渐渐成为人们生活中必不可少的一部分了。于是各种手机播放器也紧跟着发展起来,但是很多播放器一味追求外观花哨,功能庞大,对用户的手机造成了很多资源浪费,比如CPU,内存等的占用率过高,在用户需要多任务操作时,受到了不小的影响,带来了许多不便,而对于大多数普通用户,许多功能用不上,形同虚设。针对以上各种弊端,选择了开发多语种的音频视频播放器,将各种
2、性能优化,继承播放器的常用功能,满足一般用户听歌的需求。.4需求分析主要建设功能:导入本地歌曲文件,选择显示歌词,管理歌单等功能。交互设计:提供良好的交互设计操作简单快捷,按钮及菜单设计合理,合理引导用户使用界面颜色基调相似,操作习惯。风格相似。.5名称功能播放暂停音乐在该功能中,点击播放开始播放音乐,同时图标切换成相应的暂停图标,用户可以再次点击该按钮进行暂停操作,按钮也变成播放。上一首、下一首功能当歌曲在播放或者是暂停时用户可以点击相应的上一首下一首进行歌曲的切换,在切换中,如果当歌曲位于歌曲列表的边界时可以正常切换。拖动播放进度条在播放时会有一个进度条显示播放的进度,用户可以拖动进度条来
3、控制播放位置。选择播放模式用户可以自主选择播放模式,单曲循环、随机或者是随机播放模式。下文将对本功能的核心用例进行具体的分析,如下表所示:.6概要设计播放器对象之间的交互情况如图以视图树的方式展示Android 中界面的布局方式.7详细设计播放器主界面是一个Activity,Android工程在每个activity启动的时候会首先执行Oncreate()方法。如下代码:Public void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState);setContentView(R.layout.activit
4、y_main;该方法主要执行界面的初始化操作,Activity有个设置布局的方法:Context.setContentView(layoutResID),参数为资源ID,该Id在工程目录res/layout下,主界面布局文件名为main。主界面主要采用相对布局(RelativeLayout)。.82.播放音轨SeekBar在main.xml文件中,SeekBar的代码如下: 上面代码中有参数android:thumb=drawable/pic_14 为音轨游标的图片资源 播放器最重要的一部分就是音轨与歌曲进度同步的实现。音轨设置了两个TextView用来显示当前歌曲播放的进度时间和歌曲的长度如
5、右图所示.9 音轨对象SeekBar在歌曲刚开始播放的时候调用方法SeekBar.setMax(),参数传入歌曲的长度。SeekBar.setProgress(1)设置游标的起始进度为1。然后程序运行如下代码:class Mybroad extends BroadcastReceiver Overridepublic void onReceive(Context context, Intent intent) / TODO Auto-generated method stubif(intent.getAction().equals(ACTION_MAXTIME)int maxtime=inte
6、nt.getIntExtra(maxtime, 0);se.setMax(maxtime);time2.setText(+settime(maxtime);if(intent.getAction().equals(ACTION_NOWTIME)int nowtime=intent.getIntExtra(nowtime, 0);se.setProgress(nowtime);time.setText(+settime(nowtime);if(intent.getAction().equals(ACTION_LRC)String lrc=intent.getStringExtra(geci);/
7、Toast.makeText(MainActivity.this, 剧本开始+lrc, Toast.LENGTH_LONG).show();showgeci.setText(+lrc);.10if(intent.getAction().equals(ACTION_NOWMUSIC)String nowmusic1=intent.getStringExtra(nowmusic);/Toast.makeText(MainActivity.this, 剧本开始+lrc, Toast.LENGTH_LONG).show();nowmusic.setText(正在播放:+nowmusic1); publ
8、ic String settime(int time)int fen=time/60000;int miao=time/1000%60;return fen+:+miao;Runnable mRunnable = new Runnable() Overridepublic void run() / TODO Auto-generated method stubnowtime();handler.postDelayed(mRunnable, 1000);.113.播放调节功能实现各按钮水平放置,从左到右依次是上一首、播放、下一首功能按钮。用的是布局中的线性布局LinearLayout,;将其设置
9、为水平, LinearLayout中依次放置播放/暂停,上一首、下一首按钮属性。配置文件代码结构如下:.12主要按钮功能实现代码:(1) “上一首”按钮并实现功能Overridepublic void onClick(View v) / TODO Auto-generated method stubswitch (v.getId() case R.id.shang:nextmusic(0);lastm.setImageResource(R.drawable.dianji_22);break; (2) “播放”按钮并实现功能case R.id.play:isplay=!isplay;if(isp
10、lay=true)playm.setImageResource(R.drawable.dainji_20);elseplaym.setImageResource(R.drawable.dianji_19);musicplay(isplay);break; (3) “下一首”并实现功能case R.id.xia:nextmusic(1);nextm.setImageResource(R.drawable.dianji_25);break;.13 4.歌曲列表界面ListView同样有一个监听器list.setOnItemClickListener(new OnItemClickListener(
11、) Override public void onItemClick(AdapterView arg0, View arg1, int arg2, long arg3) ;,我们只要实现这个方法,就可以监听鼠标的点击事件,当鼠标点击到每一行时,可以通过public Object getItem(int position)得到该行上的信息。这样就可以通过Intent将数据传入到其它的Activity。.14效果展示音乐播放器在手机上的运行情况音乐播放器在模拟器运行情况.15此课件下载可自行编辑修改,此课件供参考!此课件下载可自行编辑修改,此课件供参考!部分内容来源于网络,如有侵权请与我联系删除!部分内容来源于网络,如有侵权请与我联系删除!