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

Android大作业的更多相关文章

  1. Android大作业 --音乐播放器

    1.项目成员(本次作业主要对上一次的音乐播放器进行完善) 韦家城 学号:1600802026 班级:161  博客:https://www.cnblogs.com/ln9969cc/ 邓乾尧 学号:1 ...

  2. 数据库大作业--由python+flask

    这个是项目一来是数据库大作业,另一方面也算是再对falsk和python熟悉下,好久不用会忘很快. 界面相比上一个项目好看很多,不过因为时间紧加上只有我一个人写,所以有很多地方逻辑写的比较繁琐,如果是 ...

  3. 程设大作业xjb写——魔方复原

    鸽了那么久总算期中过[爆]去[炸]了...该是时候写写大作业了 [总不能丢给他们不会写的来做吧 一.三阶魔方的几个基本定义 ↑就像这样,可以定义面的称呼:上U下D左L右R前F后B UD之间的叫E,LR ...

  4. Android大图片裁剪终极解决方案(上:原理分析)

    转载声明:Ryan的博客文章欢迎您的转载,但在转载的同时,请注明文章的来源出处,不胜感激! :-)  http://my.oschina.net/ryanhoo/blog/86842 约几个月前,我正 ...

  5. 大作业NABC分析结果

    大作业NABC分析结果 这次的大作业计划制作一款关于七巧板的游戏软件.关于编写的APP的NABC需求分析: N:需求 ,本款软件主要面向一些在校的大学生,他们在校空闲时间比较多,而且热衷于一些益智类游 ...

  6. [留念贴] C#开发技术期末大作业——星月之痕

    明天就要去上海大学参加 2015赛季 ACM/ICPC最后一场比赛 —— EC-Final,在这之前,顺利地把期末大作业赶出来了. 在这种期末大作业10个人里面有9个是从网上下载的国内计算机水平五六流 ...

  7. Hadoop综合大作业

    Hadoop综合大作业 要求: 用Hive对爬虫大作业产生的文本文件(或者英文词频统计下载的英文长篇小说)词频统计. 用Hive对爬虫大作业产生的csv文件进行数据分析 1. 用Hive对爬虫大作业产 ...

  8. 爬虫综合大作业——网易云音乐爬虫 & 数据可视化分析

    作业要求来自于https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/3075 爬虫综合大作业 选择一个热点或者你感兴趣的主题. 选择爬取的对象 ...

  9. 期末Java Web大作业----简易的学生管理系统

    学生信息管理系统(大作业) 2018-12-21:此文章已在我的网站更新,添加视图介绍等信息,源码请移步下载https://www.jeson.xin/javaweb-sims.html PS:首先不 ...

随机推荐

  1. yii2常用查询

    两表连查 $model = Article::find()->joinWith(['type'])->select('new,t_name,article.t_id')->asArr ...

  2. Weblogic WLS-WebServices组件反序列化漏洞复现

    漏洞分析: 当weblogic使用WLS-WebServices组件时,该组件会调用XMLDecoder解析XML数据,由此就产生了该漏洞 影响版本: weblogic<10.3.6版本 复现过 ...

  3. k8s搭建rook-ceph

    一.介绍 Rook官网:https://rook.io Rook是云原生计算基金会(CNCF)的孵化级项目. Rook是Kubernetes的开源云本地存储协调器,为各种存储解决方案提供平台,框架和支 ...

  4. 用python代码模拟登录网站

    方法一:直接使用已知的cookie访问 特点: 简单,但需要先在浏览器登录 具体步骤: 1.用浏览器登录,获取浏览器里的cookie字符串 先使用浏览器登录.再打开开发者工具,转到network选项卡 ...

  5. Node.js知识点总结

    1. 回调函数 当程序跑起来时,一般情况下,应用程序(application program)会时常通过API调用库里所预先备好的函数.但是有些库函数(library function)却要求应用先传 ...

  6. 此博客不再更新和分享UiPath文章

    由于版权问题,将不再分享我的笔记 警告:任何人不得拷贝及挪用我的uipath笔记作为商业用途,一旦发现,立刻发律师函,请知悉及慎重!!!!

  7. Oracle单机Rman笔记[5]---脱机异地还原

    脱机异地还原(安装一个原环境相同的linux,并安装数据库,注意不要配置安装实例) .检查/home/oracle下的.bashrc .bash_profile内容是否与原环境一致(具体看情况而定), ...

  8. colormap中的内嵌彩色模块和调用方式

    内嵌彩色模块代码: import numpy as npimport matplotlib.pyplot as plt # Have colormaps separated into categori ...

  9. day25_python_1124

    1.内容回顾 2.作业讲解 3.今日作业 4.粘包问题 5.tcp和udp 6.udp-socket 7.udp-socket 多人聊天 8.socketserver-tcp-socket并发 9.p ...

  10. PPT母版制作

    选择母版 首先,去iSlide官网下载iSlide,下载iSlide后,power point的菜单栏会自动出现iSilde图标(如下图). 打开iSlide这一栏,点击“图示库”,会弹出一个窗口,就 ...