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. ROM、RAM、CPU、CACHE、FLASH

    内存在电脑中起着举足轻重的作用.内存一般采用半导体存储单元,包括随机存储器(RAM),只读存储器(ROM),以及高速缓存(CACHE).只不过因为RAM是其中最重要的存储器,所以通常所说的内存即指电脑 ...

  2. Envoy 源码分析--event

    目录 Envoy 源码分析--event libevent Timer SignalEvent FileEvent RealTimeSystem 任务队列 延迟析构 dispacth_thread E ...

  3. count性能

    表有主键列,count(1)的效率会稍微高于count(*),count(主键列)效率会高于count(1).表没有主键列,count(1)效率会高于count(*) count(1).count(* ...

  4. 详解Linux下swig 3.0.12的手动安装过程

    详解Linux下swig 3.0.12的手动安装过程 首先 从http://www.linuxfromscratch.org/blfs/view/cvs/general/swig.html上下载swi ...

  5. RESTful设计

    RESTful架构: (1)每一个URI代表一种资源: (2)客户端和服务器之间,传递这种资源的某种表现层: (3)客户端通过四个HTTP动词,对服务器端资源进行操作,实现"表现层状态转化& ...

  6. Mac中java实现自动打开软件问题

    Runtime.getRuntime().exec("/Applications/NetEaseMusic.app/Contents/MacOS/NetEaseMusic");遗留 ...

  7. Java中的异常处理与抛出

    一.异常处理 程序运行过程中出现的,导致程序无法继续运行的错误叫做异常. Java中有多种异常,所有异常的父类是Throwable,他主要有两个子类Error和Exception. Error一般是J ...

  8. HFun.快速开发平台(五)=》自定义系统数据选择

    本篇介绍HFun.快速开发平台的另一项系统常用功能:系统数据或参数选择,主要应用在表单录入中信息的选择,如类别,编号等.先贴出本系统实现的页面效果: 如上图所示,系统中将参数的选择统一展现为该方式,开 ...

  9. linux(ubuntu)GCC编译包含库函数的问题

    GCC 编译命令通常为:gcc hello.c -o hello.out 注意:若hello.c中引用有库函数(比如math.h),直接编译会出错 "/tmp/ccalvMPY.o: In ...

  10. 关于Opengl投影矩阵

    读 http://www.songho.ca/opengl/gl_projectionmatrix.html 0.投影矩阵的功能: 将眼睛空间中的坐标点 [图A的视椎体]     映射到     一个 ...