1.项目成员
邓乾尧 学号:1600802005 班级:161 博客:http://www.cnblogs.com/2575590018dqy/
韦家城 学号:1600802026 班级:161 博客:https://www.cnblogs.com/ln9969cc/
2.apk链接:https://git.dev.tencent.com/YDMY/1600802005.git
3.coding代码链接:https://git.dev.tencent.com/YDMY/1600802005.git
4.团队项目介绍
4.1团队项目截图


4.2主要功能实现
(1)音乐播放暂停,上一首下一首切换
(2)三种播放方式,顺序,随机,单曲
(3)列表播放音乐
5.关键代码
播放暂停上一首下一首
//播放暂停 playBtn = (Button)findViewById(R.id.playBtn); playBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if(!mp.isPlaying()){ init(position); mp.start(); playBtn.setBackgroundResource(R.drawable.pause); mHandler.postDelayed(r,1000); }else{ mp.pause();//暂停播放 mHandler.removeCallbacks(r); playBtn.setBackgroundResource(R.drawable.play); } } });
|
//上一首 lastBtn = (Button)findViewById(R.id.lastBtn); lastBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { position--; if(position<0) position=2; init(position); mp.start(); playBtn.setBackgroundResource(R.drawable.pause); mHandler.postDelayed(r,1000); } });
|
//下一首 nextBtn = (Button)findViewById(R.id.nextBtn); nextBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { position++; init(position); mp.start(); playBtn.setBackgroundResource(R.drawable.pause); mHandler.postDelayed(r,1000); } });
|
实现三种播放方式以及自动切换下一首的定时器
Runnable r=new Runnable() { @Override public void run() { if(!mp.isPlaying()&&((stylePosition%3)==0)){ position++; init(position); mp.start(); }else if(!mp.isPlaying()&&((stylePosition%3)==1)) { position=(int)Math.random()%3; init(position); mp.start(); }else if(!mp.isPlaying()&&((stylePosition%3)==2)){ init(position); mp.start(); } mHandler.postDelayed(this,1000); } };
|
实现从列表到播放器界面的定时器,用来实现从列表选歌播放时传递到播放器播放新歌
Runnable r=new Runnable() { @Override public void run() { if(!mp.isPlaying()&&((stylePosition%3)==0)){ position++; init(position); mp.start(); }else if(!mp.isPlaying()&&((stylePosition%3)==1)) { position=(int)Math.random()%3; init(position); mp.start(); }else if(!mp.isPlaying()&&((stylePosition%3)==2)){ init(position); mp.start(); } mHandler.postDelayed(this,1000); } };
|
6.
7.问题以及解决方案
7.1 已解决问题:
(1)自动切歌功能,能在歌曲播放结束后播放下一首歌曲
(2)播放列表选歌播放时播放器播放歌曲的问题
(3)连续切歌导致闪退,原因是ondestroy()操作
7.2 未解决问题
(1)依然没有能够解决无法读取sd卡的问题
(2)没有实现实时播放功能,界面也不够完善,是通过图片东拼西凑才做出来的
8.团队分工(因为我们两人是通过在一台电脑上做的这个播放器,一起讨论并一起想办法解决,所以我觉得并没有谁比谁做的多的)
姓名 |
工作比例 |
分数(10分) |
邓乾尧 |
50% |
5 |
韦家城 |
50% |
5 |