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. git push 失败出现error: src refspec master does not match any.解决方案

    今天写好一个demo往GitHub上传时报错 错误提示: error: src refspec master does not match any. error: failed to push som ...

  2. 剑指offer-整数中1出现的次数

    题目描述 求出1~13的整数中1出现的次数,并算出100~1300的整数中1出现的次数?为此他特别数了一下1~13中包含1的数字有1.10.11.12.13因此共出现6次,但是对于后面问题他就没辙了. ...

  3. php + mysql 分布式事务

    事务(Transaction)是访问并可能更新数据库中各种数据项的一个程序执行单元: 事务应该具有4个属性:原子性.一致性.隔离性.持续性 原子性(atomicity).一个事务是一个不可分割的工作单 ...

  4. ubuntu14静态ip配置

    0.配置ip需要掌握的一些基本指令 打开/创建文件      sudo vim ... 插入信息      i 保存并强制退出      先按Esc,再键入:wq!,回车 1.使用命令 sudo vi ...

  5. POJ 2352 数星星

    Stars Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 53816   Accepted: 23159 Descripti ...

  6. 如何定位jdk中的native方法源码?

    前提条件:已下载openjdk的源码. 以System类的arraycopy为例: 1. 根据关键字定位文件:grep -rn '"arraycopy"' ./openjdk关键字 ...

  7. qt 调用zlib压缩与解压缩功能

    Zlib是一种免费且通用的压缩库,由于Zlib压缩效果比LZW好,而且解压缩速度快,更重要的是商业软件中使用Zlib不需要缴纳版权费,所以很多游戏都使用Zlib压缩资源文件. Zlib是由Jean-l ...

  8. python3练习-装饰器

    在廖雪峰的官方网站学习装饰器章节时,初步理解类似与面向切面编程.记录一下自己的课后习题解法. 问题: 请编写一个decorator,能在函数调用的前后打印出'begin call'和'end call ...

  9. linux下vmstat命令详解

    vmstat是Virtual Meomory Statistics(虚拟内存统计)的缩写,可对操作系统的虚拟内存.进程.CPU活动进行监控. 它能够对系统的整体情况进行统计,无法对某个进程进行深入分析 ...

  10. laravel的firstOrCreate的作用:先查找表,如果有就输出数据,如果没有就插入数据

    public function zan(Post $post){ $param=[ 'user_id'=>\Auth::id(), 'post_id'=>$post->id ] Za ...