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. discuss!X3.4 帖子显示昵称而不是用户名的解决办法

    问题:dedecmsV5.7和discuz!X3.4整合之后,实现免激活登陆之后,从dede过来的用户在discuz 直接展示的用户名,因为我们的用户名是手机号,所以不想帖子都展示的是用户名. 因为我 ...

  2. 51. N-Queens N皇后

    网址:https://leetcode.com/problems/n-queens/ 类似见:https://www.cnblogs.com/tornado549/p/10701124.html

  3. C# 3.0 / C# 3.5 对象集合初始化器、匿名类

    对象集合初始化器 在 .NET 2.0 中构造一个对象的方法一是提供一个重载的构造函数,二是用默认的构造函数生成一个对象,然后对其属性进行赋值. 在 .NET 3.5/C# 3.0 中,我们有一种更好 ...

  4. React 的组件与 this.props对象

    1.组件 React 允许将代码封装成组件,然后像插入普通 HTML 标签一样,在网页中插入这个组件.React.createClass 的方法就是用于生成一个组件类. 2.this.props对象 ...

  5. 小程序二层嵌套循环数据:微信小程序开发(交流QQ群:604788754)

    WXML: <view class="martop15"> <view class="titlebox"> .二层嵌套循环 </v ...

  6. 【技巧】easyUI的datagrid,如何在翻页以后仍能记录被选中的行

    easyUI的datagrid在复选框多选时,如何在翻页以后仍能记录被选中的行: 注意datagrid中需要配置idField属性,一般为数据的主键

  7. Rhino学习教程——1.4

    状态栏 状态栏位于整个工作界面的下方,主要显示了一些系统操作时的信息. 根据不同的功能,可以将状态栏分成4个部分. 一.坐标系统 在状态栏左侧显示了当前所使用的坐标系统(“世界”或“工作平面”,可以通 ...

  8. PC端车牌识别朱凯茵从事图像识别算法、OCR算法

    大家好,我是从事图像识别的pc端车牌识别朱凯茵,多多交流OCR算法,不限于车牌识别等,技术需要突破,你我成就梦想.

  9. 关于angular实现表单的一些问题

    如何用angular实现表单的一些问题?核心步骤大概如下: 创建模型类 创建控制此表单的组件. 创建具有初始表单布局的模板. 使用ngModel双向数据绑定语法把数据属性绑定到每个表单输入控件. 往每 ...

  10. angular $resouse服务

    创建服务 var taskInstancesResource = function ($resource) { var resource = $resource('/ssc-cutover/rest/ ...