1、项目成员(本次作业主要对上一次的音乐播放器进行完善)

  韦家城 学号:1600802026 班级:161  博客:https://www.cnblogs.com/ln9969cc/

  邓乾尧 学号:1600802005 班级:161  博客:http://www.cnblogs.com/2575590018dq

2.APK链接:https://git.dev.tencent.com/YDMY/1600802005.git

3.conding代码链接:https://git.dev.tencent.com/YDMY/1600802005.git

4.团队项目介绍

4.1团队项目截图

4.2团队项目主要功能实现

  (1)进度条控制音乐播放进度

  (2)播放,暂停,上一曲,下一曲,音量键控制音量大小

  (3)列表播放音乐

  (4)自动播放下一曲

  (5)随机播放,顺序播放,单曲循环

5.关键代码展示(基于前一次作业的基础上,故不再写第三次作业已有的代码,主要写一些对上一次AKP的bug的修改和功能的完善之处)

  (1)关于第三次作业APK不能连续切歌的问题解决:在上一次作业中,每当切歌按钮被点击时,我们都会对音乐进行ondestroy()处理,也就是这里的错误,导致连续切歌的闪退。

    

  (2)关于第三次作业列表播放和主界面同时播放歌曲问题的解决:在上一个作业中,关于列表播放,我们都是使其自己准备音乐,自己在Main2Activity中实现播放,基本相当于独立于MainActivity,两者播放并不冲突,故可以实现同时播放,解决方法主要是弃除Main2Activity的播放功能,设置一个定时器每秒对MainActivity的position进行传值监控,如果主界面正在播放歌曲,并且与Main2Acrivity想要播放的歌曲不同,那么播放哪首歌曲以Main2Activity的值为优先。

  (3)实现自动播放下一曲(基于第三次作业的功能不足进行的完善):主要通过定时器和监听器进行监听,一旦用户没有点击暂停按钮,但是音乐的Isplaying=false时,就会对position进行自增操作,并且将歌曲播放出来,当然,当用户点击暂停按钮时,相应的定时器也会被关闭,再次点击播放按钮,定时器会继续启动并进行监听。

  (4)顺序播放,随机播放以及单曲循环功能实现(主要通过按钮的背景图片进行辨别当前的播放模式):我在MainActicity里又设置了一个styleposition(类似于position),在自动播放下一曲的监听器和定时器里加入对styleposition的判断,以判断执行哪种播放方式(在点击右下角按钮时,styleposition会实现自增并除3取余)

  

6.其他团队项目评价:

(1)张文君组
  评价:实现了歌词功能,界面布局做的也很大气美观,但是apk在手机运行并不能显示歌词。

(2)马秀莲组

  评价:实现了快递等校园服务,但是登录注册很有问题,下载apk以后并不能登录上去,其他的功能在项目介绍里才能看到。

(3)韩璐组

  评价:实现了一个播放列表的功能,可以把从内存卡中获取的本地音乐添加到另外一个播放列表中,是相对于其他音乐播放器的一大特色,其次界面做的也很不错,比较耐看。

(4)成明龙组

  评价:实现了音乐播放的基本功能,特色就是海报的滑动,但在apk中嵌入视频时在虚拟机上总是显示没有找到视频,并且界面布局并不是很美观。

(5)孟鑫菲组:

  评价:实现了物流交易,功能比较完善,界面也比较美观,但是apk运行有部分文字不能显示出来。

7.问题以及解决方法:

 已解决问题:

  韦家城(学号:1600802026):

  (1)连续切歌闪退的问题:在切歌时,不进行ondestroy()操作,详情在5中已经讲述。

  (2)列表和主界面同时放歌的问题:弃除Main2Acticity的播放功能,只实现position的传值,播放功能都只在MainActivity里进行实现,详情在5中已经讲述。  

  (3)UI界面的美化,图标选择等等。

  邓乾尧(学号:1600802005):

  (1)自动播放下一曲,:主要通过定时器和监听器进行监听,一旦用户没有点击暂停按钮,但是音乐的Isplaying=false时,就会对position进行自增操作,并且将歌曲播放出来,当然,当用户点击暂停按钮时,相应的定时器也会被关闭,再次点击播放按钮,定时器会继续            启动并进行监听。

  (2)循环播放,自动播放,单曲循环,随机播放以及单曲循环功能实现(主要通过按钮的背景图片进行辨别当前的播放模式):我在MainActicity里又设置了一个styleposition(类似于position),在自动播放下一曲的监听器和定时器里加入对styleposition的判断,以判断          执行哪种播放方式(在点击右下角按钮时,styleposition会实现自增并除3取余)

 尚未解决问题:

    只能实现播放音乐播放器里的歌曲,不能实现自动搜索本地音乐的搜索,本想直接把模拟器里的开发者开发的音乐播放器的接口当做内容提供者,直接在其中获取音乐列表,但是Android3.2版本的sd卡导入文件功能键被弃用了,好不容易找到导入界面,却因为端口问题导致无法正确导入文件,故只有放弃这种方法,只得在raw文件夹直接查找音乐文件名。

8.团队分工:

  因电脑Android的软件问题,并为了更有效的实现音乐播放器,故整个音乐播放器基本都是我和韦家城在一个电脑上完成,可以说,这个App的完善基本都是我们共同努力的结果,分工也是50%和50%,各自5分;

9.录屏:https://www.bilibili.com/video/av39882286?from=search&seid=11879265700267726139

Android大作业 --音乐播放器的更多相关文章

  1. Android 实现简单音乐播放器(二)

    在Android 实现简单音乐播放器(一)中,我介绍了MusicPlayer的页面设计. 现在,我简单总结一些功能实现过程中的要点和有趣的细节,结合MainActivity.java代码进行说明(写出 ...

  2. Android 实现简单音乐播放器(一)

    今天掐指一算,学习Android长达近两个月了,今天开始,对过去一段时间的学习收获以及遇到的疑难杂症做一些总结. 简单音乐播放器是我自己完成的第一个功能较为完整的APP,可以说是我的Android学习 ...

  3. Android实现简单音乐播放器(MediaPlayer)

    Android实现简单音乐播放器(MediaPlayer) 开发工具:Andorid Studio 1.3 运行环境:Android 4.4 KitKat 工程内容 实现一个简单的音乐播放器,要求功能 ...

  4. Android实现简单音乐播放器(startService和bindService后台运行程序)

    Android实现简单音乐播放器(MediaPlayer) 开发工具:Andorid Studio 1.3运行环境:Android 4.4 KitKat 工程内容 实现一个简单的音乐播放器,要求功能有 ...

  5. android全功能音乐播放器、基于MVP-Clean + Weex + RxJava2 + Retrofit + Dagger2 + MTRVA的综合应用、图片滤镜处理等源码

    Android仿微信朋友圈查看图片下拽返回. Android图片滤镜处理,相机滤镜处理效果源码 Android自定义View源码:一个水平的进度条 基于MVP-Clean + Weex + RxJav ...

  6. Android实现网络音乐播放器

    本文是一个简单的音乐播放器 布局代码 <?xml version="1.0" encoding="utf-8"?> <RelativeLayo ...

  7. Android开发之音乐播放器的实现

    Android音乐播放器 使用到Android的Actiivity和Service组件 播放音频的代码应该运行在服务中,定义一个播放服务MusicService,服务里定义play.stop.paus ...

  8. Android开发之音乐播放器

    做了一天的音乐播放器小项目,已经上传到github,将链接发到这里供大家参阅提议 https://github.com/wangpeng0531/MusicPlayer.git

  9. android 音乐播放器

    本章以音乐播放器为载体,介绍android开发中,通知模式Notification应用.主要涉及知识点Notification,seekbar,service. 1.功能需求 完善音乐播放器 有播放列 ...

随机推荐

  1. MVC实战之排球计分(三)—— 模型类的设计与实现

    此软件使用的数据库连接方式code first 由EF框架产生数据库. code first需要对模型类设计和实现.模型类是现实实体在计算机中的表示.它贯穿于整个架构, 负担着在各层次及模块间传递数据 ...

  2. http.cof

    ## This is the main Apache HTTP server configuration file. It contains the# configuration directives ...

  3. Hadoop---18/06/03 20:15:52 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable starting yarn daemons

    WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin- ...

  4. loj 10001 种树

    *********贪心,把需要的路段终止点排序,然后在每个区间内判断是否已经满足条件,不满足的从区间右端向左端种树. #include<cstdio> #include<algori ...

  5. ActiveMQ broker解析

    在 ActiveMQ 中,broker 集中管理持久的.临时的 queue 和 topic. public class BrokerFilter implements Broker { // 省略其他 ...

  6. Qt一步一步实现插件通信(附源码)

      前一章已经实现了主程序调用加载插件功能,这一章描述主程序和插件间通信功能 说道Qt的通信必须要了解信号和槽的机制原理,这里不做论述,不清楚的同学去看看信号和槽机制 不废话直接上步骤,在上一章的基础 ...

  7. openssh允许root用户登录

    openssh默认是不允许root用户登录的,未改配置直接以正确的root账号密码登录会提示用户名密码错误之类. 好消息是openssh配置十分清晰,基本所有的服务端配置都在/etc/ssh/sshd ...

  8. java集合类,详解

    集合详解 1.1HashSet HashSet是Set接口的一个子类,主要的特点是:里面不能存放重复元素,而且采用散列的存储方法,所以没有顺序.这里所说的没有顺序是指:元素插入的顺序与输出的顺序不一致 ...

  9. 我个人对OOP的理解

    OOP面向对象的思维:pay1:封装 A.避免使用非法数据赋值 B.保证数据的完整性 C.避免类内部发生修改的时候,导致整个程序的修改 pay2:继承 A.继承模拟了现实世界的关系,OOP中强调一切皆 ...

  10. Ubuntu云服务器下mysql授权远程登陆

    1)首先以 root 帐户登陆 MySQL(在授权之前要确保3306端口开放)2)创建远程登陆用户并授权 > grant all PRIVILEGES on discuz.* to zhan@' ...