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.功能需求 完善音乐播放器 有播放列 ...
随机推荐
- appium自动化测试(四)
一. 获取webview的html页面 方法一: 1. 获取webview中对应的html页面 谷歌浏览器中输入地址:chrome://inspect(第一次使用要FQ) 前提:手机开启USB调试模式 ...
- Oracle用户密码认证方式
oracle用户有两种认证方式: 操作系统认证(要求该用户属于本地DBA组,然后通过操作系统认证登录oracle,从而启动数据库) 密码文件认证 oracle使用哪种认证方式决定在于两个参数: 1.r ...
- Apache+Tomcat+mod_jk配置教程
0.说明 首先我们要弄明白mod_jk的作用是反向代理,而其实使用httpd.conf中的<VirtualHost>标签就可以实现反向代理,为什么还要多搞个mod_jk那么麻烦做反向代理. ...
- Eclipse集成weblogic教程
1.在线安装插件 1.1安装Oracle Weblogic Servers Tools oeop是添加的软件仓库的名字,随便写主要是方便记. 仓库链接:http://www.oracle.com/te ...
- 怎么样才是设计功能函数的好思路(javascript)?
在js里面,对于函数的调用,实际上也是也是面向对象的思路,于是写好js函数,也是考核面向对象设计的能力,同时也必须考虑到如何实现高内聚和低耦合,拿一个例子来说,现在的需求是这样的,实现个投资进度框,就 ...
- UVa Live 3635 - Pie 贪心,较小的可能不用 难度: 2
题目 https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_pr ...
- xadmin后台分段导出避免timeout
一.问题 xadmin后台功能很强大,特别在导出的时候格式有xls/xlsx.csv.xml.json.实际常用的还是前面2种.xls格式使用的xlwt,有个缺陷,导出数据过大时,会报ValueErr ...
- prototype:构造函数的真相、原型链
函数不是构造函数,但是当且仅当使用 new 时,函数调用会变成 ‘构造函数调用’.那么对 ’构造函数‘ 最准确的解释是:所有带 new 的函数调用. Nothing 只是一个普通的函数,但使用 new ...
- Linux查看某个进程的磁盘IO读写情况 pidstat
一.现象 1)钉钉告警不断,告警如下CPU使用达到100% 普罗米修斯监控 2)查看数据库,没有发现比平时同一时段,业务量的增加.但是,数据库显示latch free等告警,验证了CPU使用过高导致. ...
- sql语句最后一行显示统计。
SELECT id, username, id_Num FROM users UNION ALL SELECT '合计', count(*), null FROM users ORDER BY id_ ...