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. nameode启动过程

    namenode在内存和磁盘中都保存了fsimage和edits文件 内存中保证hdfs文件系统的访问效率,磁盘中保证hdfs文件系统的安全性 namenode的文件组成: fsimage文件:保存文 ...

  2. C++函数指针与指针函数干货

    C++要是不常用,相信过四天你的指针函数与函数指针的概念就该忘个精光. 其实只要记住谁在后面谁就是哪个本质. 先了解下指针数组与数组指针吧 数组指针 就是指向数组的指针,它表示的是一个指针,它指向的是 ...

  3. 软件工程wc项目,基于py

    ###WC项目文件链接:https://github.com/ILTHEW/wc.git 个人项目:WC 实践是理论的基础和验证标准,希望读者贯彻"做中学"的思想,动手实现下面的项 ...

  4. 【分享】用Canvas实现画板功能

    前言 PC端测试:QQ浏览器全屏绘画完成.缩小时内容会被清空,切换背景颜色内容会被重置,其他暂无发现: 手机端测试:微信内置浏览器不通过:Safari 浏览器使用画笔时没固定页面会有抖动效果,使用橡皮 ...

  5. jquery 浮动 固定显示

    <%@ page contentType="text/html;charset=UTF-8" language="java" %>无标题文档 我爱b ...

  6. rsyslog及loganalyzer

    日志:历史日志 历史事件: 时间记录,事件的关键性程度,loglevel 系统日志服务: syslogd,守护进程 syslogd:system klogd:kernel   rsyslog: sys ...

  7. react native练习

    import React, { Component } from 'react' import { Platform, StyleSheet, Text, View,Image ,FlatList} ...

  8. Spring Boot:如何优雅的使用 Mybatis

    mybatis-spring-boot-starter 官方说明:MyBatis Spring-Boot-Starter will help you use MyBatis with Spring B ...

  9. java-猜数字

    package com.jijy.circle; import java.util.Scanner; import java.util.Random; public class demo5 { pub ...

  10. 操作日志的设计小结by大熊

    一.首先由同事的操作日志说起 同事做了一个这样的操作日志,他定义系统所有发的json加入这两个字段,module和msg,然后在service里面用注解@Log拦截,即可记录对应的操作日志. { mo ...