Android大作业 --音乐播放器
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大作业 --音乐播放器的更多相关文章
- Android 实现简单音乐播放器(二)
在Android 实现简单音乐播放器(一)中,我介绍了MusicPlayer的页面设计. 现在,我简单总结一些功能实现过程中的要点和有趣的细节,结合MainActivity.java代码进行说明(写出 ...
- Android 实现简单音乐播放器(一)
今天掐指一算,学习Android长达近两个月了,今天开始,对过去一段时间的学习收获以及遇到的疑难杂症做一些总结. 简单音乐播放器是我自己完成的第一个功能较为完整的APP,可以说是我的Android学习 ...
- Android实现简单音乐播放器(MediaPlayer)
Android实现简单音乐播放器(MediaPlayer) 开发工具:Andorid Studio 1.3 运行环境:Android 4.4 KitKat 工程内容 实现一个简单的音乐播放器,要求功能 ...
- Android实现简单音乐播放器(startService和bindService后台运行程序)
Android实现简单音乐播放器(MediaPlayer) 开发工具:Andorid Studio 1.3运行环境:Android 4.4 KitKat 工程内容 实现一个简单的音乐播放器,要求功能有 ...
- android全功能音乐播放器、基于MVP-Clean + Weex + RxJava2 + Retrofit + Dagger2 + MTRVA的综合应用、图片滤镜处理等源码
Android仿微信朋友圈查看图片下拽返回. Android图片滤镜处理,相机滤镜处理效果源码 Android自定义View源码:一个水平的进度条 基于MVP-Clean + Weex + RxJav ...
- Android实现网络音乐播放器
本文是一个简单的音乐播放器 布局代码 <?xml version="1.0" encoding="utf-8"?> <RelativeLayo ...
- Android开发之音乐播放器的实现
Android音乐播放器 使用到Android的Actiivity和Service组件 播放音频的代码应该运行在服务中,定义一个播放服务MusicService,服务里定义play.stop.paus ...
- Android开发之音乐播放器
做了一天的音乐播放器小项目,已经上传到github,将链接发到这里供大家参阅提议 https://github.com/wangpeng0531/MusicPlayer.git
- android 音乐播放器
本章以音乐播放器为载体,介绍android开发中,通知模式Notification应用.主要涉及知识点Notification,seekbar,service. 1.功能需求 完善音乐播放器 有播放列 ...
随机推荐
- spring boot(十三)小技巧
一些springboot小技巧.小知识点 初始化数据 我们在做测试的时候经常需要初始化导入一些数据,如何来处理呢?会有两种选择,一种是使用Jpa,另外一种是Spring JDBC.两种方式各有区别下面 ...
- Linux下使用mail发送邮件
邮件常常是Linux下监控报警手段之一.Linux下的mail命令可以方便,快速的完成发送邮件.下面以CentOS为例 1.安装 [root@vm8028 ~]# mail -bash: mail: ...
- [CodeForces - 614A] A - Link/Cut Tree
A - Link/Cut Tree Programmer Rostislav got seriously interested in the Link/Cut Tree data structure, ...
- windows工具打开命令
程序 命令 位置 记事本 notepad C:\Windows\system32 ping ping C:\Windows\System32 服务管理器 services.msc C:\Windows ...
- 整合elk(2)(十三)
配置.启动kibana 到kibana的安装目录: 1 ./bin/kibana 默认配置即可. 访问localhost:5601,网页显示: 证明启动成功. 创建springboot工程 起步依赖如 ...
- MySQL数据库安装与配置鸡汤
目录 一.概述 二.MySQL安装 三.安装成功验证 四.NavicatforMySQL下载及使用 一.概述 MySQL版本:5.7.17 下载地址:http://rj.baidu.com/soft/ ...
- ie edge 自动给数字加下划线
<meta name="format-detection" content="telephone=no,email=no,address=no">
- js 复制对象的深复制与浅复制
1.潜复制(修改新对象会改变原对象) var baz = {a:'hello', b: {c:'my', d:'friend'}} var foo = baz foo.a="better&q ...
- day_07_python_1124
01 昨日内容回顾 数据类型补充: str <---> list split join list <---> set set(list) list(set()) list &l ...
- day06字典类型
基本使用: 1.用途:用来存多个(不同种类的)值 2定义方式:在{}内用逗号分隔开多个key:value的元素,其中value可以是任意数据类型,而key的功能通常是用来描述value的,所以key通 ...