物联网专业毕业设计Android Studio 音乐播放器与音响设备_第1页
物联网专业毕业设计Android Studio 音乐播放器与音响设备_第2页
物联网专业毕业设计Android Studio 音乐播放器与音响设备_第3页
物联网专业毕业设计Android Studio 音乐播放器与音响设备_第4页
物联网专业毕业设计Android Studio 音乐播放器与音响设备_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

物联网应用技术毕业设计AndroidStudio音乐播放器与音响设备设计报告引言1.1课题背景及其意义自上世纪七十年代起,出现了一种新型音乐风格——流行音乐。随着流行音乐的风格不断发展,逐渐进入大众的视野,其商业价值也不断提高。各式各样的音乐播放设备层出不穷,人们对于音乐的喜爱与优质音乐体验的追求也越来越高。目前市场上的音乐软件大多采用订阅制和单曲付费结合,这导致体验一首歌曲可能要较多花费。由于疫情的横空出世,人们面对市面上各类音乐软件高昂的会员价格和动辄上千元的高价音响设备实在捉襟见肘。面对这种现状,本文设计了一项方案,使用AndroidStudio设计一个满足大部分人需求的音乐播放软件[1],用户可根据喜好将音乐保存进去随时进行播放。为提升用户体验,本文同时设计了一个具有优质音乐输出的音响设备。通过此设计,用户可以使用最少的预算获得优质音乐体验。在疫情对经济严重影响的前提下,此方案具有一定意义。2设备准备工作2.1配置的确定笔记本电脑的CPU是Intel(R)Core(TM)i5-10500HCPU@2.50GHz,内存条是两条8GB的双通道16.0GB(15.8GB可用),搭载了一块GTX1650型号显卡,拥有4GB的显存,一块2K27寸170刷新率的显示屏。手机系统Android7.0及以上,显示屏建议使用一条DPmini1.4的数据线连接至笔记本电脑即可。2.1.1AndroidStudio软件的选择和安装注意事项本文选择的是3.5.3版本的AndroidStudio和配置文件jdk21。重点是必须先安装JDK文件然后再安装AndroidStudio软件。其中,在配置环境变量之后,调出“运行”对话框,输入“cmd”后回车,如果安装正确,会显示其版本信息,否则就是安装出问题了,需要重新调试。做法是在“系统命令提示符”窗口输入命令“java-version”后回车。AndroidStudio的安装需要注意不要安装在具有中文的路径当中,否则可能在运行程序时报错。这是因为中英文编码方式不同,英文软件打开的时候不能识别路径,或识别成乱码,就造成软件不能使用。2.1.2创建一个Android模拟器为了实时查看编写的程序能否在移动端(也就是Android系统的手机端)使用,创建一个AndroidStudio软件自带的“模拟”手机[2]。Android原生模拟器的类型选择没有要求,笔记本电脑配置可以选择任意配置的模拟手机。在SystemImage窗口建议选择最新的系统API30。安装完成后需要设置RAM所占的最大空间值,默认即可。3代码编写与素材准备3.1音乐播放器初步实现3.1.1配置文件汇总图3.1配置文件汇总整个项目包含几个布局文件和几个类,类文件分别如上图3.1配置文件汇总。布局文件分别是activity_main、activity_music、music_list、item_layout、frag2_layout。这5个构造文件基本就是有关我们这个程序全部的布局[3]。activity_music.xml是我们刚创建的M-A的一个构造文件,它可以显示音乐播放器界面。activity_main_XML为M-A的构造文件,APP运行时的主界面就是经过它进行显示。frag的构造文件由item_layout.XML和music_list.XML一起组成,就是音乐列表界面。另一个取名为frag2_layout_XML的类文件是主要功能是显示我们之后放入的图片,即音乐专辑封面图片,简称专辑。也是frag的一个构造文件,如图3.2frag的一个构造文件:图3.2frag的一个构造文件3.1.2音乐文件的准备与添加本文在res文件下创建了一个raw文件,这个文件的作用是可以将喜欢的音乐文件放入其中,在手机上使用时可以直接把音乐移动到这个文件中[4]。本文选择的八首音乐分别为"雪是何色","Eupotia","转生王女","亡灵","chuchuchu","LastingMoment","UnrealCreation!","RE:make"。为避免出现bug,将八首音乐重命名为music0.mp3、music1.mp3、music2.mp3、music3.mp3、music4.mp3、music5.mp3、music6.mp3、music7.mp3。如图3.3音乐文件的准备与添加。图3.3音乐文件的准备与添加复制粘贴几张喜欢的音乐的封面图片,右击复制直接将其移动到drawable文件夹中music0.png、music1.jpg、music2.jpg、music3.png、music4.jpg、music5.jpg、music6.png、music7.jpg。音乐封面图片bg.png,播放器背景图片,musicbg.jpg(图片文件后缀可以是.jpg或.png)以及背景选择器的btn_bg_selector.xml文件,如图3.4音乐的封面图片所示:图3.4音乐的封面图片为了音乐图片的规范,将music0.png、music1.jpg、music2.jpg、music3.png、music4.jpg、music5.jpg、music6.png、music7.jpg这八个图片剪成圆形。如图3.5音乐图片的规范:图3.5音乐图片的规范3.2搭建主界面3.2.1关于activity_main布局文件的编写这一步主要显示主界面[5],最外层用的是使用LinearLayout进行排编的一个线性界面布局,本文将此内容用来设置为“我喜欢”,作用就是市面上其他音乐播放器的一个“爱心”收藏夹。剩余的空间还可以做一些其他的改动,本文选择做一个碎片(Fragment)子程序[6]。如图3.6与3.7:图3.6关于activity_main布局文件的编写图3.7关于activity_main布局文件的编写3.2.2关于主类MainActivity类文件的编写将注意力放到本文的Act文件上,其中M-A类是我们所做的所有项目的总大类。本文做了两个菜单类型的文件放在底部的导航栏之中:frag1(歌曲列表菜单)和frag2(专辑封面菜单),为了使刚打开软件的时候强制显示歌曲列表,观看专辑点击进行页面的切换,如下图3.8与3.9关于MainActivity类文件的编写所示:3.8关于MainActivity类文件的编写3.9关于MainActivity类文件的编写package

com.example.zhuhaiyang;public

class

M-Act

extends

AppCompatActivity

implements

View.OnClickListener

{//创建变量private

TextView

televion1,televion2;//绑定控件

private

FragmentTransaction

fit;//绑定控件

private

FragmentManager

fim;//绑定控件

@Override

protected

void

onCreate(Bundle

savedInstanceState)

{

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);//绑定控件televion1=(TextView)findViewById(R.id.menu1);//设置监听器,固定写法

televion2=(TextView)findViewById(R.id.menu2);televion1.setOnClickListener(this);

televion2.setOnClickListener(this);fim=getSupportFragmentManager();fit=fim.beginTransaction();fit.replace(R.id.content,new

fragous1());mit();//提交改变的内容

}

@Overridepublic

void

onClick(View

v){

fit=fim.beginTransaction();//切换选项卡

fit.replace(R.id.content,new

frag1());

break;

case

R.id.menu2:

fit.replace(R.id.content,new

frag2());

break;

default:

break;

}

mit();

}}此代码是主文件,作用是控制其它文件的运行。3.3Service(服务)类功能的创建、使用与实现3.3.1Service类功能的概述能够在后台长时间执行操作(可以使我们的音乐实现后台播放)并且不需要使界面呈现在画面的首页上面的一个非常实用的应用程序组件——Service(服务),是安卓四大功能组件之一[7]。并且我们可以使用Service与其它各种各样的复杂的程序进行交互,一般是由Act启动,但是并不依赖于Act。3.3.2Service类功能的创建选中程序包名(com.example.zhuhaiyang//其中“zhuhaiyang”是我所创建的文件名,不同人的这一段后缀不同),接着右击选择新的(new)→服务(Service)→服务(Service)选项[8],在弹出窗口输入自己喜欢的名称完成创建。如图3.10Service类功能的创建:图3.10Service类功能的创建本文将其命名为MusicService,然后点击Finish。如图3.11Service类功能的创建:图3.11Service类功能的创建以下是M-S的编程代码[1]如图3.12与图3.13M-S的编程代码:图3.12M-S的编程代码图3.13M-S的编程代码

public

void

play(int

i){Uri

uri=Uri.parse("android.resource://"+getPackageName()+"/raw/"+"music"+i);

try{//重置播放器player.reset();//加载多媒体文件player=MP.create(getApplicationContext(),uri);

player.start();//播放音乐addTimer();//添加计时器}catch(Exception

e){

e.printStackTrace();

}}此代码是音乐播放器按键的反馈。3.4界面逻辑代码的设计与实现3.4.1创建Activity本文按照下图操作,右击包名(com.example.zhuhaiyang.test//其中“zhuhaiyang”是本文所创建的文件名,不同人的这一段后缀不同),新建一个Act,本文将其命名为M-A或者是其它名称,然后点击完成,它会生成一个简单的用来显示音乐播放界面的一个文件,如图3.14创建Activity所示:图3.14创建ActivityM-A类:音乐软件的各种按钮,通过鼠标单击方法控制着它会和音乐服务(service)进行连接[9]。这是平常最常用的功能,可以用来显示歌曲总时长,控制歌曲进度条,显示歌曲目前播放时间的位置等等。activity_music:这个文件可以显示本文进行个性化设计的一个音乐播放器界面,包括了一些市面上常见的音乐播放器的一些功能趣味[10],效果如图3.15音乐播放器界面:图3.15音乐播放器界面activity_music代码如图3.16与3.17activity_music代码,详见附录A。图3.16activity_music代码图3.17activity_music代码3.4.2导入界面图片将音乐播放器所需要的图片导入到drawable文件夹中,如图3.18导入界面图片:图3,18导入界面图片该文件为点击按钮的背景选择器,主要是为了区分是否进行了播放与否的一个功能,当然可以自由设定喜欢的颜色[11],如图3.19设定喜欢的颜色:图3.19设定喜欢的颜色3.4.3搭建音乐列表界面按照下图操作,首先右击此包名(com.example.zhuhaiyang//其中“zhuhaiyang”是本文所创建的文件名,不同人的这一段后缀不同)—>新的(New)—>Java类(JavaClass),将其命名为frag,点击OK。如图3.20搭建音乐列表界面:图3.20搭建音乐列表界面按照下图操作,首先右击布局(layout)文件夹——>新的(New)——>布局资源文件(LayoutResourceFile),根据本文的需求,应该新建两个布局(layout)文件,对它们分别进行命名,如图3.21与3.22建立布局资源文件:图3.21建立布局资源文件图3.22建立布局资源文件音乐列表(musiclist):歌曲列表的布局文件,可以垂直显示多条信息。效果如图3.23音乐列表布局界面所示[12]:图3.23音乐列表布局界面item_layout:就是条目布局,相当于列表当中每一行信息的详细UI,如图3.24音乐列表信息详细UI[13]:图3.24音乐列表信息详细UI3.4.4专辑封面界面右击包名,New——>JavaClass,我们可以将其命名为合适的名称。如图3.25与3.26专辑封面界面建立:图3.25专辑封面界面建立图3.26专辑封面界面建立本文需要再新建一个frag_layout文件,如图3.27frag_layout文件建立:图3.27frag_layout文件建立本文需要用frag2的类文件来设置一个图片的视图,前面所说的专辑图片就用它来显示,也可以用来写一些有趣的简介之类的文字信息。如下图3.28专辑图片显示:图3.28专辑图片显示效果如图3.29专辑图片显示:图3.29专辑图片显示完成之后,本文的音乐播放器就算初步完成。4项目的运行与APP的创建和移植4.1初步运行点击右上角的绿色三角形,即可开始运行AndroidStudio的原生模拟器效果如图4.1初步运行效果:图4.1初步运行效果可以完美运行,之后在手机上也可以完美运行,如图4.2手机运行效果:图4.2手机运行效果关于APP文件的生成,只需要点击上方条目中的“Build”→“BuildBundle(s)/APK(s)”→“BuildAPK(s)”即可创建可以在Android系统下运行的APP软件,如图4.3APP的创建:图4.3APP的创建生成的APP文件一般可以在安装目录中找到,如图4.4APP安装目录:图4.4APP安装目录用一根数据线将其传输到手机即可安装使用,也可以使用QQ进行传输。4.2运行成功成功运行此软件的进程图如下图4.5运行成功所示:图4.5运行成功图示4.5中,程序所在的文件位置检索成功,评估设置成功运行,配置构建运行成功,所运行的任务成功运行以及APP的组装调试成功进行。所有的文件都没有问题,软件运行成功。5音响硬件的准备与组装5.1音响硬件介绍选择的硬件主要是平时上课接触到的简单硬件例如电阻、电容、LED灯泡、二集管等等。表5.1音响硬件表元件名称代号数量电阻18欧四环:棕灰黑金五环:棕灰黑金棕R6,R122电阻100K四环:棕黑黄金五环:棕黑黑橙棕R1,R2,R3,R5,R7,R8,R9,R118元件名称代号数量电容1000ufC4,C9,C113电容47ufC1,C3,C6,C84电容4.7ufC2,C72瓷片电容104C5,C10,C12,C134电位器50K+旋钮B50K1音频座IN13MM红色LEDD21二极管1N4007D11TDA2030IC1,IC22散热片+螺丝2+6接线端子J1,J2,J33PCB板1喇叭1个或2个(15W左右)音频线1电源1个(要求12V2A的规格)这些基本就是所需要的全部硬件。接下来详细说明一下套件参数:输入电压:AC9-15V或DC9-15V(直流输入注意分清分极性,交流输入不分极性)输出功率:Po=15W+15W(RL=4Ω)输出阻抗:4—8ΩPCB规格:64x54mm使用的是“纯后级功放”,这个名词的意思是仅仅单纯的将音量放大,同时没有设置前置的放大电路,使用这种焊接方法可以使输入的音源不被任何其他因素修饰。经由此放大后的声音直接推动这件15瓦功率的喇叭发音,这种声音几乎没有任何跑偏的可能。使用提示:如果接手机音频信号的话,几乎没有杂音和电流声,接电脑的话,需要电脑外接一个外置声卡,使电脑耳机孔间接输出音频,否则很有可能会有一些“滋滋”的轻微电流声。这种板子最好使用15W的喇叭,如果喇叭功率小或者说使用的电源线的输出功率不足,开越大的大声音就越有可能容易有异响。音量调节按钮不要调到尽头,调到临界不失真位置即为现有喇叭和电源条件下的合适的音量。硬件的焊接方面应该按照平时课上的练习,应先焊接比较“低矮”的硬件,例如电阻瓷片电容等等,否则会出现“卡手”的现象,导致后续硬件难以焊接,其次就是尽量一个挨着一个焊接。先把几个电阻焊接上去,然后观察周围比较好焊的元件。外围的三个接口元件可以只焊接两个,一个用来连接电源,另外两个用来连接喇叭。连接好的板子如图5.2连接好的板子所示:图5.2连接好的板子观察上图5.2连接好的板子可以发现有六个螺丝孔,分成了三对,一对两个螺丝孔,其中只有两对是必须使用的。上方两对螺丝孔都是用来接喇叭的,只需要连接两对螺丝中的任意一对即可。至于板子下方的一对螺丝孔则是连接电源线所用,接线端子遵循“红正黑负”规则进行连接。图5.3连接好的板子如上图5.3连接好的板子,PCB板子的背面焊接也没有问题,需要注意焊点不能焊在一起,否则有接触不良的问题。接下来接好音频线连接至手机或电脑即可播放音乐。软件操作与硬件实操到此即全部完成。5.2性能与成本分析表5.4与市面上其它产品对比音响名称价格播放品质扬声器功率本文产品40元音质良好,声音较大15W*2索爱235元音质良好,声音较小6W*2笔记本电脑5099元音质较差,声音中等12W山水T21398元音质良好,声音较大30WCCJBL1799元音质良好,声音较大60W由表5.4与市面上其它产品对比可知,本文所制作的产品不仅价格低廉,在音乐品质方面也具有百元级甚至千元级的实力,扬声器的功率超越200元的索爱音响,与1400元的音响相当。将本文所制音响与笔记本电脑连接后播放音乐明显感到音质与音量的提升。与由此可以得出,本文所制作的产品即使在市场上也具有巨大的竞争力,且价格大部分人可接受,确实是一件具有重要作用的作品。结论本篇论文使用了AndroidStudio与单片机硬件进行了结合,面对经济下行的音乐娱乐市场,提出了一个预算低廉且体验优秀的方案。本文使用AndroidStudio作为载体,结合页面UI设计、点击按钮跳转页面设计、Service服务类设计、联动控制歌曲进度等功能,制作一个音乐播放软件。在此基础上通过硬件焊接、电路测试、性能与成本分析,制作出一个音响播放设备,在最终测试阶段取得圆满成功。本文所涉及的课题背景、设计理念、原理图和电路设计在本文中均有体现,本设计的相关代码附于附录中。致谢当今社会的人们有了太多的选择,这使得人们变得急躁而不再珍惜眼前物,本程序需要返回原程序添加图片和mp3文件才能添加新的音乐。试想一下,一首歌得多么打动人心才能使人不辞辛苦地去添加进去。毋庸置疑的是,我必须感谢的是我的辅导老师刘老师。在放暑假没多久后,刘老师就在QQ群里开会议一个一个询问同学们的论文意向,并给出了十分值得参考的意见。当我提出我的论文意向后,我本已作好了被评价为自作聪明的准备,但是老师却在同学们面前鼓励我说这是个十分有创意的想法。我当机立断,下定决定就以此为题,做出来优秀的毕业论文,决不让刘老师失望!随后刘老师又说明了一些注意事项,我牢牢谨记,并将其运用到论文中去。在不断的修改过程中与会议中,我有时会觉得自己的毕业设计有些简陋,在选题的方向上可能没有其他同学的深度。因为我所做的只是一个简单的小软件,并没有一些高大上的功能。但是同时我也觉得毕业论文应该是一个检验自己所学知识的事物,即使做出来的东西比较简陋,只要能对得起自己三年的学习就是优秀的。功夫不负有心人,事实证明,我的决定十分正确。在一切准备就绪之后,我不忘老师们的叮嘱,详细检查每一步可能出现的问题,力求做到完美无缺,不给即将毕业的自己留下遗憾。同时我也会将这份设计所保留以作纪念,并在以后的学习生活中将其功能更完善一些。相信随着我的知识水平的提高,这份设计会变得更加完美。参考文献1振华OPPOAndroidStudio如何实现音乐播放器(简单易上手)[D].计算机科学与技术研究生20224-82Bruce

Eckel

.

Thinking

in

java(java

编程思想)第四版.北京:机械工业出版社,20113赵亮,张维、基于Android技术的界面设计与研究[D].

徐州:徐州建筑职业技术学院,20014刘玉平,

Java

输入输出流及在网站开发中的应用探讨[J].郴州市科技局,20094陈璟,陈平华,李文亮.

Android内核分析[J].广东工业大学计算机学院实践与经验,2009:

112-1155王珊,陈红。数据库系统原理教程.北京:清华大学出版社,20046林城.

Android

2.3应用开发实战[J]

.机械工业出版社,2011:

17-321.7吴亚峰,索依娜.

Android

核心技术与实例讲解。北京:电子工业出版社,20108马志强.基于.Android平台即时通信系统的设计与实现[D].北京交通大学20099杨丰盛.

Android应用开发揭秘.机械工业出版社.2010,

5-710靳岩,姚尚朗.

Android研发入门与实践[D].人民邮电出版补,2009

5-911熊刚.基于.

Android的智能手机的设计与实现[D].武汉理工大学,

201012陈炜,张晓蕾,侯燕萍等.

Java

软件开发技术.北京:人民邮电出版社,200513刘平.

Android

手机访问服务器的一种数据交互方法[J]

.西安财经学院网络与现在教育技术中心,2010-09:

96-102附录附录A:activity_music代码如下<?xml

version="1.0"

encoding="utf-8"?><LinearLayout

xmlns:android="/apk/res/android"

xmlns:tools="/tools"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:background="@drawable/music_bg"

tools:context=".MusicActivity"

android:gravity="center"

android:orientation="vertical">

<ImageView

android:id="@+id/iv_music"

android:layout_width="220dp"

android:layout_height="220dp"

android:layout_gravity="center_horizontal"android:src="@drawable/music0"

android:layout_margin="10dp"/>

<TextView

android:id="@+id/song_name"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="歌曲的名字"

android:textSize="20sp"/>

<SeekBar

android:id="@+id/sb"

android:layout_width="match_parent"

android:layout_height="wrap_content"

/>

<RelativeLayout

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:paddingLeft="10dp"

android:paddingRight="8dp">

<TextView

android:id="@+id/tv_total"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignParentRight="true"

android:text="00:00"/><TextView

android:id="@+id/tv_progress"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="00:00"/>

</RelativeLayout>

<LinearLayout

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:orientation="horizontal">

<Button

android:id="@+id/btn_play"

android:layout_width="0dp"

android:layout_height="45dp"

android:layout_margin="10dp"

android:layout_weight="1"

android:background="@drawable/btn_bg_selector"

android:text="开始播放"/>

<Button

android:id="@+id/btn_pause"

android:layout_width="0dp"android:layout_margin="10dp"

android:layout_weight="1"

android:layout_height="45dp"

android:background="@drawable/btn_bg_selector"

android:text="暂停播放"/><Button

android:id="@+id/btn_exit"

and

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论