大学生安卓期末设计之本地音乐播放器

article/2025/10/24 2:14:48

作为一个热爱设计交互性产品的男大学生,我真的不太爱听课,所以很多时候,需要一个人学会阅读搜索资料并不停尝试,我希望大家也多多热爱这样持之以恒的尝试。

先看产品的一个模拟机测试效果(b站南阳洛信也有视频)

安卓APP开发大学生期末课程设计之本地音乐播放器

该课程设计里面主要是用到登录界面、音乐播放器界面和打卡界面,因为没有内置数据库,所以退出APP后之前输入的内容并不会保存,有待改善。

这里参考了一位博主的部分内容,详情我已经放在了文件夹的word内。

要做成这样一个播放器,大概的逻辑大家也能想到,就是遍历sd卡,然后保存音乐目录。实际上,如果我们要做一个安卓的播放器,不需要那么麻烦。安卓的媒体库在sd卡内容变动时,会自动对内容进行分类,所以我们只需要将媒体库遍历一下就行了。

从媒体库中我们能得到歌曲的各种信息,包括了歌手名字、时间、相册等等。

要想它在列表llistview中显示,适配器以及适配数组元素的类型都需要自己来重新定义,当然这个可能会比较难,所以要借鉴别人的,大概看懂就行。

于是在文件目录中出现了基于BaseAdapter类的MyAdapter类(适配器类)和自定义的Musiinfo类(数组元素类),每个数组元素都应该包含歌曲的各种信息。

 对于适配器类,只有两个参数和很多方便处理的自定义函数(java设计的封装性),其中list就是适配数组, context是当前容器(布局文件)的id。

private ArrayList<MusicInfo> list;
private Context context;public MyAdapter(ArrayList<MusicInfo> list, Context context) {this.list = list;this.context = context;
}

对于数组元素类,参数会多一点,因为cursor从媒体库里得到的信息比较多(有些没有用的,也显示不出来)

private String id;
private String singName;
private String singer;
private String alumb;
private String time;
private String path;
public MusicInfo() {
}
public MusicInfo(String id, String singName, String singer, String alumb, String time, String path) {this.id = id;this.singName = singName;this.singer = singer;this.alumb = alumb;this.time = time;this.path = path;
}

其次,对于播放器mediaplayer的自带的操作函数,大家需要有个概念。

上面两个是自定义的函数。播放器对象可以调整生命周期,暂停按钮的逻辑是:单击暂停,再单击继续。

 最后是一个列表的单击事件逻辑:先判断当前是否有音乐再播放,然后选择先停止还是直接设置数据源播放。

class items implements AdapterView.OnItemClickListener {public void onItemClick(AdapterView<?> parent, View view, int position, long id) {MusicInfo info = list.get(position);singer.setText(info.getSinger());singerName.setText(info.getSingName());//因为有可能其他音乐正在被播放,所以要先停止再播放stopMusic();//播放音乐play.reset();try {play.setDataSource(info.getPath());playMusic();} catch (IOException e) {e.printStackTrace();}}
}

注意当列表的适配数组有变动的时候,要及时更新列表。

data.clear();//数组清空
meet.notifyDataSetChanged();//更新列表

在实验代码里还为大家建立了登录界面和打卡界面,详情可以看实验报告。

最后给予大家一点调试代码的小建议:

1.视频中音乐播放器顶端列表中的音乐来自于本地音乐播放器,在实际手机上测试时,系统不是安卓的,Android并不会自动整理媒体库,上面目录里也不会有歌曲。只有安卓系统才会搜寻本地音乐。

  2.给组件添加背景图片时,注意图片不要太大,会导致页面崩溃。

3.组件的安排不要超出模拟机界面,也容易崩溃。

4.调试时,发现单个页面打不开,未产生任何按钮单击事件,一步一步调试OnCreate{}里面的代码。事件执行的顺序是先有逻辑再有页面,很可能页面逻辑不对,如绑定布局文件设置数据源时出现了未知的id。

最后大家如果需要获取完整的实验代码或者需要我的帮助,关注公众号生而无愧,后台发送“安卓本地音乐播放器”就可以获取完整的网盘链接了。


http://chatgpt.dhexx.cn/article/iYiZdgMO.shtml

相关文章

Android本地音乐播放器

UI界面模仿QQ音乐 实现一个简单的本地播放器&#xff0c;功能包括&#xff1a;播放&#xff0c;暂停&#xff0c;上一曲&#xff0c;下一曲&#xff0c;进度条。 功能实现 读取本地音乐 1.创建一个Song类 public class Song {public String song;//歌曲名public String sing…

毕业设计- 基于Android的本地音乐播放器

—— 木叶飞舞之处&#xff0c;火亦生生不息。 项目介绍 本系统支持扫瞄本地音乐播放、暂停、上一首、下一首&#xff0c;点击播放栏跳转到播放页面&#xff0c;可查看当前播放列表&#xff0c;设置播放模式如顺序播放、随机播放&#xff0c;标记为我的喜欢&#xff0c;可以创…

Selenium自动化测试设计模式-PO模式

前言&#xff1a; 在python自动化过程中&#xff0c;Selenium自动化测试中有一个名字常常被提及PageObject&#xff08;思想与面向对象的特性相同&#xff09;&#xff0c;通过PO模式可以大大提高测试用例的维护效率。 不了解po设计模式的可自行百度 面向对象的特性&#xf…

电商项目测试实战(十一)后台业务场景测试设计

后台订单处理业务场景测试设计 流程步骤&#xff1a; 设计测试用例&#xff1a; 第一步&#xff1a;绘制流程图 1、确认业务中的操作 2、分析执行的顺序 3、按照业务方向进行连线 收到前台订单&#xff08;商城->订单->订单列表&#xff09;订单确认发货&#xff0…

电商项目测试实战(十)前台下单业务场景测试设计

前台下单业务场景测试设计 流程步骤&#xff1a; 设计测试用例&#xff1a; 第一步&#xff1a;需求分析 第二步&#xff1a;绘制流程图 1、确定业务中的操作 2、分析执行的顺序 3、按照业务方向进行连线 登录->选购商品->加入购物车->支付->确认订单->等待…

空调测试用例设计

** 空调测试用例设计 ** 界面测试 功能测试 可靠性测试 易用性测试 可维护性测试 兼容性测试 竞品测试 负载压力测试 稳定性测试 文档测试 界面测试&#xff1a; 空调外观的美观性空调外观尺寸是否和设计尺寸一致遥控按钮是否清晰和易懂显示温度及模式的显示屏是否显示设备…

测试场景设计-登录设计

来一波广告&#xff1a;欢迎关注测者说&#xff0c;测试理论知识尽在此处 面试中经常被问到有一个登录页面&#xff0c;你怎么设计测试场景&#xff0c;原来可以做到这么细致。 具体需求&#xff1a; 有一个登陆页面&#xff0c;&#xff08;假如上面有2个textbox,一个提交按钮…

基于微信小程序的大学生心理健康测试设计与实现 .docx

目录 1 绪论 3 1.1 项目开发背景 3 1.2 项目开发意义 3 1.3 项目主要的内容 4 2 相关技术介绍及系统环境开发条件 5 2.1相关技术介绍 5 2.2系统环境开发条件 6 3 系统的需求分析与设计 6 3.1可行性分析 7 3.2需求分析 7 3.2.1系统总体概述 8 3.2.2功能性需求 8 3.2.3非功能性需…

测试设计技术

本文是根据测试架构师修炼之道&#xff08;第二部分 突破&#xff1a;向软件测试架构师的目标迈进&#xff09;整理的&#xff0c;主要分为5个小部分&#xff1a;测试设计四步走、测试设计软技能、设计技术之控制用例粒度、设计技术之自动化测试、设计技术之探索式测试。学习的…

数字系统的测试与可测试设计(DFT)

数字系统的测试与可测试设计&#xff08;DFT&#xff09; 背景介绍1 Defects1.1 名词解释1.2 缺陷种类1.2.1 Physical Defects物理缺陷1.2.2 Shorting Defects1.2.2.1 Gate-Oxide-Shorts1.2.2.2 Bridge1.2.2.1 Open1.2.2.1 Post-fabrication failures 2 Fault Modelling&#x…

2. 测试分析与测试设计

1. 为什么要做好测试分析和测试设计 以业务驱动测试&#xff1a;当下的测试圈子内&#xff0c;大家一直在强调自动化技术、DevOps等&#xff0c;这些是提高效率和质量的利器&#xff0c;但是所有有效的测试行为&#xff0c;都是建立在对业务需求有正确的理解和分析的基础上的。…

软件测试之---测试设计方法

二、测试设计方法&#xff08;黑盒测试设计方法&#xff1b;白盒测试设计方法&#xff09; 1、等价类划分法 1.1等价类划分法概念 将输入&#xff08;输出&#xff09;域划分成若干个子集合&#xff0c;从划分的子集合中选取代表数据&#xff0c;如果选取的数据测试没有问题&…

测试用例:四步测试设计法

读者提问&#xff1a; 阿常&#xff0c;上节我们讲到测试点不等同于测试用例&#xff0c;想请教你一下&#xff0c;如何把测试点加工成测试用例呢&#xff1f; 目前团队中测试人员针对同样的测试点&#xff0c;编写出来的测试用例各不相同&#xff0c;一千个人就有一千个哈姆雷…

常用测试设计方法

目录 1、按照开发阶段划分&#xff08;1&#xff09;单元测试(模块测试)&#xff08;2&#xff09;集成测试(组装测试)&#xff08;3&#xff09;确认测试(有效性测试)&#xff08;4&#xff09;系统测试&#xff08;5&#xff09;验收测试 2、按照代码运行划分&#xff08;1&a…

大数据基础概述

大数据基础概述 1.前言2.大数据技术发展的三个阶段3.大数据技术面临的问题4.大数据技术数据的特点5.大数据对各方面的影响6.大数据技术的应用领域7.大数据技术的相关概念8.大数据技术的相关产业9.云计算和物联网 1.前言 三次信息浪潮 信息化浪潮发生时间标志解决问题代表企业第…

大数据概论

大数据big data指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合&#xff0c;是需要新 处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。大量数据资源为解决以前不可能解决的问题带来了可能性。1大数据不一定…

大数据技术概论

大数据技术概论 大数据技术的产生 大数据的基本概念 ●大数据简介: 大数据是规模非常巨大和复杂的数据集,传统数据库管理工具处理起来面临很多问题,比如说获取、存储、检索、共享、分析和可视化,数据量达到PB、EB或ZB的级别。 大数据有三个V: 一是数据量(Volume),数据量是持续…

2【源码】数据可视化:基于 Echarts + Java SpringBoot 实现的动态实时大屏范例-物流大数据

数据可视化大屏的出现&#xff0c;掀起一番又一番的浪潮&#xff0c;众多企业纷纷想要打造属于自己的“酷炫吊炸天”的霸道总裁大屏驾驶舱。 之前小伙伴们建议我出一些视频课程来学习Echarts&#xff0c;这样可以更快上手&#xff0c;所以我就追星赶月的录制了《Echarts - 0基…

客快物流大数据项目(九十一):ClickHouse的数据库引擎

​​​​​​​ 文章目录 ClickHouse的数据库引擎 一、MySQL引擎 ClickHouse的数据库引擎 ClickHouse提供了本机、M

客快物流大数据项目(九十二):ClickHouse的MergeTree系列引擎介绍和MergeTree深入了解

文章目录 ClickHouse的MergeTree系列引擎介绍和MergeTree深入了解 一、MergeTree系列引擎介绍