android安卓音乐播放器毕业实习报告+实习日记.docx
- 文档编号:26081814
- 上传时间:2023-06-17
- 格式:DOCX
- 页数:30
- 大小:247.03KB
android安卓音乐播放器毕业实习报告+实习日记.docx
《android安卓音乐播放器毕业实习报告+实习日记.docx》由会员分享,可在线阅读,更多相关《android安卓音乐播放器毕业实习报告+实习日记.docx(30页珍藏版)》请在冰豆网上搜索。
android安卓音乐播放器毕业实习报告+实习日记
武汉工程大学
计算机科学与工程学院
毕业实习报告
专业
软件工程
班级
01
学号
学生姓名
指导教师
实习时间
2012~2013学年第2学期
2013.3.04至2013.3.22
实习成绩
武汉工程大学计算机科学与工程学院制
说明:
1、实习指导教师由学院校内教师担任,负责组织实习、学生管理、参加实习答辩、实习成绩评定、给出实习评语等工作。
2、实习报告由武汉工程大学计算机科学与工程学院提供基本格式(适用于学院各专业),各专业教研室和指导教师可根据本专业特点及实习内容做适当的调整,学生须按指导教师下达的实习报告格式认真进行填写。
3、实习成绩由指导教师根据学生的实习情况给出各项分值及总评成绩。
4、指导教师评语一栏由实习指导教师(校内教师)就学生在整个实习期间的表现给出客观、全面的评价,包括实习期间的表现、实习报告的质量、实习答辩的情况等。
5、学生必须参加实习答辩,凡不参加实习答辩者,实习成绩一律按不及格处理。
实习答辩小组应由2人及以上教师组成,其中校内指导教师必须参加,否则视作无效答辩。
6、实习报告正文字数应不少于5000字,实习日记字数不少于200字/天。
7、实习报告正文中实习目的与任务、实习地点、实习内容和要求等项,可由指导教师统一给出(自主实习除外)。
学生自主实习的,可根据实习的情况自行填写以上内容。
8、自主实习的学生还应提供由实习单位出具的实习鉴定表(复印件),与实习报告一起装订,作为参加实习答辩和评定成绩的依据。
毕业实习成绩评定表
学生姓名:
学号:
********班级:
01
类别
总分值
各项分值
评分标准
实际得分
总得分
备注
实习表现
30
10
按时参加实习活动,无旷课、迟到、早退等情况。
10
遵守实习单位纪律和安排,无违反实习单位规定的情况;听从指导教师的安排,参加各项活动,无不服从教师管理的现象。
10
按期圆满完成规定的任务,工作量饱满;能运用所学知识和技能去发现与解决实际问题,工作中有创新意识。
实习报告
40
15
实习报告文字通顺,内容翔实,论述充分、完整,结构严谨合理。
能运用所学专业知识对问题加以分析。
15
正确处理相关的数据,分析处理科学;具有收集、加工各种信息及获得新知识的能力。
5
实习报告字数符合相关要求,实习报告工整规范,整齐划一。
5
实习日记(笔记)次数及内容符合要求。
实习答辩
30
15
在规定时间内能就实习的内容进行全面完整的阐述,言简意明,重点突出,条理清晰。
15
在规定时间内能准确、完整、流利地回答教师所提出的问题。
总评成绩:
分
补充说明:
指导教师:
(签字)
日期:
年月日
毕业实习答辩记录表
学生姓名:
学号:
班级:
01
答辩地点:
答辩内容记录:
答辩成绩
总分值
各项分值
评分标准
实际得分
总得分
备注
30
15
在规定时间内能就实习的内容进行全面完整的阐述,言简意明,重点突出,条理清晰。
15
在规定时间内能准确、完整、流利地回答教师所提出的问题。
答辩小组成员(签字):
年月日
指导教师评语
指导教师:
(签字)
日期:
年月日
一、引言
1.1项目背景
当今社会的生活节奏越来越快,人们对手机的要求也越来越高,由于手机市场发展迅速,使得手机操作系统也出现了不同各类,现在的市场上主要有三个手机操作系统,symbian,Windowsmobile,以及谷歌的Android操作系统,其中占有开放源代码优势的Android系统有最大的发展前景。
那么能否在手机上拥有自己编写的个性音乐播放器呢?
答案是:
肯定的,谷歌Android系统就能做到。
本文的音乐播放器就是基于谷歌Android手机平台的播放器。
Android:
是谷歌于2007年公布的开放式源代码手机系统,它的开放性就优于其它封闭式的手机系统,因此,任何人都可能根据自己的喜好将手机系统中的所有功能重新编写。
这使得越来越多的人关注这个操作系统。
本次作品音乐播放器就是基于Android平台的。
随着计算机的广泛运用,手机市场的迅速发展,各种音频视频资源也在网上广为流传,这些资源看似平常,但已经渐渐成为人们生活中必不可少的一部分了。
于是各种手机播放器也紧跟着发展起来,但是很多播放器一味追求外观花哨,功能庞大,对用户的手机造成了很多资源浪费,比如CPU,内存等的占用率过高,在用户需要多任务操作时,受到了不小的影响,带来了许多不便,而对于大多数普通用户,许多功能用不上,形同虚设。
针对以上各种弊端,选择了开发多语种的音频视频播放器,将各种性能优化,继承播放器的常用功能,满足一般用户(如听歌,看电影)的需求,除了能播放常见格式的语音视频文件,高级功能:
还能播放RMVB格式的视频文件。
此外,还能支持中文、英文等语言界面。
要研究了各种市场上流行的手机播放器,了解它们各自的插件及编码方式,还有各种播放器播放的特别格式文件,分析各种编码的优缺点以及各种播放器本身存在的缺陷和特点,编写出功能实用,使用方便快捷的播放器。
目前已经实现的功能有能播放常见音频文件的功能,如MP3,WAV等,拥有播放菜单,能选择播放清单,具备一般播放器的功能,如上一曲,下一曲,音量调节等。
1.2安卓介绍
Android一词的本义指“机器人”,同时也是Google于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成,号称是首个为移动终端打造的真正开放和完整的移动软件。
目前最好的是Android2.0的摩托罗拉Droid
Android是基于Linux内核的软件平台和操作系统,早期由Google开发(在华注册商标名为“安致”),后由开放手机联盟(OpenHandsetAlliance)开发。
它采用了软件堆层(softwarestack,又名以软件叠层)的架构,主要分为三部分。
低层以Linux内核工作为基础,只提供基本功能;其他的应用软件则由各公司自行开发,以Java作为编写程序的一部分。
另外,为了推广此技术,Google和其它几十个手机公司建立了开放手机联盟。
1.3安卓组件介绍
Activity——应用表示层(基类Activity)
应用程序中的每个屏幕都是通过继承和扩展基类Activity来实现的。
同一应用中的每个Activity是相互独立的。
程序启动后显示的第一幅画面是应用程序的第一个Activity(默认窗口),而后可以根据需要从这个Activity启动另一个新的Activity。
Activity利用View来实现应用中的GUI(用户直接通过GUI和应用程序做交互)。
Activity窗口内的可见内容通过基类View提供。
使用Activity.setContentView()方法设置当前Activity中的View对象。
Service——没有可见的用户界面,但能够长时间运行于后台(基类Service)
运行于应用程序进程的主线程中,因此Service不会阻塞其他组件和用户界面。
Service是不能自己启动的,必须通过Context对象(如一个Activity)调用startService或bindService方法来启动(用这两种方法启动的Service的生命周期不同)。
BroadcastReceiver——用户接收广播通知的组件(基类BroadcastReceiver)
Android中的广播要么来自于系统,要么来自普通应用程序。
很多事件都可能导致系统广播,如手机所在时区发生变化,电池电量低,用户改变系统语言设置等。
来自普通应用程序,如一个应用程序通知其他应用程序某些数据已经下载完毕。
ContentProvider——为解决应用程序间数据通信、共享的问题(基类ContentProvider)
在Android中,每个应用程序都是用自己的用户ID并在自己的进程中运行。
这样的好处是,可以有效地保护系统及应用程序,避免被其他不正常德应用程序所影响,每个进程都拥有独立的进程地址空间和虚拟空间。
ContentProvider可以将应用程序特定的数据提供给另一个应用程序使用。
其数据存储方式可以是Android文件系统、SQLite数据库或者其他合理的方式。
当数据需要在应用程序间共享时,我们就可以利用ContentProvider为数据定义一个URI。
之后,其他应用程序对数据进行查询或者修改时,只需要从当前上下文对象获得一个ContentResolver,然后传入响应的URI就可以了。
Intent——连接组件的纽带
以上4种基本组件中,除了ContentProvider是通过ContentResolver激活外,其他3种组件Activity、Service和BroadcastReceiver都是由Intent异步消息激活的。
Intent在不同的组件之间传递消息,将一个组件的请求意图传给另一个组件。
因此,Intent是包含具体请求信息的对象。
Intent是一种运行时绑定(runtimebinding)机制,它能够在程序运行的过程中连接两个不同的组件。
通过Intent,你的程序可以向Android表到某种请求或者意愿,Android会根据意愿的内容选择适当的组件来处理请求。
1.4安卓XML文件的使用
在安卓工程中,大量使用了XML文件,比如界面布局文件,字符资源文件,风格style文件,简单图形文件等。
比如在界面布局文件中,通过指定控件的排列方式、间隔像素、对齐方式等,达到对页面进行布局的目的,同时使用特定编辑器,实时解析布局文件,到达所见即所得的目的。
在字符资源中,通过关键字编辑字符内容,这样可以在不修改代码的情况下,修改程序内容。
同时,考虑多国语言的使用,更加容易替换字符内容,所以我们建议在代码的编写过程中,尽量少地在程序中使用特定语言字符,而是在字符资源文件中编写。
在风格文件中,通过特定关键字,可以使界面呈现统一风格,同时减少重复代码的编写,减轻工作量。
图形XML文件中可以实现一些矩形、椭圆形等图形文件,可以指定颜色和渐变颜色范围。
1.5编写目的
现今社会生活紧张,而欣赏音乐是其中最好的舒缓压力的方式之一,本项目的目的是开发一个可以播放主流音乐文件格式的播放器,本设计的实现的这主要功能是播放mp3、wav多种格式的音乐文件,并且能够控制播放,暂停,停止,上一曲,下一曲,音量调节,视觉外观,播放列表和歌曲文件的管理操作等多种播放控制功能,界面简明,操作简单。
本项目是一款基于Android手机平台的音乐播放器,使Android手机拥有个性的多媒体播放器,使手机显得更生动灵活化,与人们更为接近,让手机主人随时随地处于音乐视频的旋律之中。
使人们的生活更加多样化。
也使设计者更加熟练Android的技术和其它在市场上的特点。
第二章系统功能简介
2.1功能需求分析
根据项目的目标,我们可获得项目系统的基本需求,以下从不同角度来描述系统的需求,并且使用用例图来描述,系统的功能需求,我们分成四部分来概括,即播放器的基本控制需要,播放列表管理需求,播放器友好性需求和播放器扩展卡需求。
2.1.1播放器的基本控制需求
下面图2-1是音乐播放器的基本用例图,描述了程序的基本功能。
图2-1播放器基本用例图
2.1.2声音控制的程序流程图
程序中一个重要模块就是控制播放音量,程序可以通过点击控制条调整程序音量,以下图2-2是声音控制的程序流程图。
图2-2声音控制的程序流程图
点击控制条之后,程序判断音量是加还是减,程序获取系统音量,当声音可以按照用户点击的控制条设置时,程序按照控制条的大小进行音量的调整。
2.2系统性能需求
根据Android手机系统要求无响应时间为5秒,所以就有如下性能要求:
(1)当要求歌曲播放时,程序响应时间最长不能超过5秒
(2)当要求歌曲暂停时,程序响应时间最长不能超过5秒
(3)当要求歌曲停止时,程序响应时间最长不能超过5秒
(4)当要求歌曲上/下一首时,程序响应时间最长不能超过5秒
(5)当要求进行清单列表时,程序响应时间最长不能超过5秒
2.3运行环境需求
操作系统:
Android手机基于Linux操作系统
支持环境:
Android1.5-4.2.2版本
开发环境:
Eclipse3.5ADT21
第三章程序详细设计
3.1程序界面设计
通过XML布局文件设计的程序界面如下图3-1所示。
图3-1程序界面设计效果图
XML文件使用绝对布局方式,首先是全局的ListView,占据父部的全部长宽,然后是两个平行的进度条,几乎占全部宽度,然后是四个按钮控件,使用四张图片作为按钮的底色,依次是上一曲,播放,停止,下一曲。
其中播放按住被点击后,或是正在被播放时,该按钮会换作暂停按钮。
XML布局文件实际内容简略如下:
xmlns: android=" android: orientation="vertical" android: layout_width="fill_parent" android: layout_height="fill_parent"> android: id="@id/android: list" android: layout_width="fill_parent" android: layout_height="fill_parent" android: layout_weight="1" android: drawSelectorOnTop="false"> layout_height="wrap_content" android: layout_width="match_parent" android: id="@+id/musicBar"> text="TextView"android: layout_height="wrap_content" android: layout_width="wrap_content"android: id="@+id/textView1""> id="@+id/imageStop"android: src="@drawable/stop" android: layout_height="wrap_content"android: layout_width="wrap_content" > id="@+id/imageLast"android: src="@drawable/last" android: layout_height="wrap_content"android: layout_width="wrap_content"> id="@+id/imageStart"android: src="@drawable/start" android: layout_height="wrap_content"android: layout_width="wrap_content"> id="@+id/imageNext"android: src="@drawable/next" android: layout_height="wrap_content"android: layout_width="wrap_content" > id="@+id/soundBar"android: layout_height="wrap_content" android: layout_width="match_parent">
3.2程序音乐文件过滤
程序会对音乐文件夹进行扫描过滤,提取出后缀为.mp3的文件以供播放,文件过滤类的内容如下:
publicclassMusicFilterimplementsjava.io.FileFilter{
@Override
publicbooleanaccept(Filepathname){
booleanb=false;
if(pathname.isDirectory()){
b=true;
}else{
if(pathname.getName().endsWith(".mp3")){
b=true;
}else{
b=false;
}
}
returnb;
}
}
3.3程序界面Activity类的设计
程序的界面MusicTestActivity类是程序的主要部分,设计到界面所有控件的操作及设计、程序的流程控制及音乐播放的核心部分。
MusicTestActivity类的大纲如下图3-2所示。
字段mediaPlayer是音乐播放的核心变量,进行音乐播放,处理器mHandle是对音乐播放流程进行管理的变量,然后六个监听器是对按钮及进度条的变化进行及时响应,剩下的都是辅助标记变量,标记当前播放信息,以及控制参数信息。
图3-2MusicTestActivity类的设计
3.4音乐播放核心代码
整个程序的运转都是围绕音乐播放进行的,进行了流程控制及异常处理等多个阶段,而播放的核心是以下代码:
privatevoidplayMusic(Stringpath){
try{
mediaPlayer.reset();//先重置一下
mediaPlayer.setDataSource(path);//设置音乐文件的路径
mediaPlayer.prepare();//准备
mediaPlayer.setLooping(true);//循环播放
mediaPlayer.start();//开始播放
//设置音乐拖动度的当前进度初始值
musicBar.setProgress(mediaPlayer.getCurrentPosition());
//设置音乐拖动条的最大值
musicBar.setMax(mediaPlayer.getDuration());
//System.out.println("当前正在播放的歌曲时间是:
"+mediaPlayer.getDuration());
//显示出来当前音乐的时间
tv.setText(toTime(mediaPlayer.getCurrentPosition())+"/"+toTime(mediaPlayer.getDuration()));
//当歌曲开始播放时.线程也开始运行
this.startProgressUpdate();
}catch(IllegalArgumentExceptione){
e.printStackTrace();
}catch(IllegalStateExceptione){
e.printStackTrace();
}catch(IOExceptione){
e.printStackTrace();
}
}
mediaPlayer是设计到硬件播放的变量,多以进行了完善的异常处理,同时获取文件的长度信息。
第四章程序设计结果及测试分析
4.1程序运行效果图
如图4-1,是程序运行的效果图。
图4-1程序运行效果图
经过在手机上运行,程序可以流畅地播放音乐,无卡顿现象,可以从音乐列表的第一栏播放到最后一栏,实时准确地显示播放进度信息,并调整控制音量大小。
按钮上一曲、下一曲及停止都可以正确地作用,暂停按钮在音乐播放的时候可以正确显示并作用,当被点击之后,即显示为播放按钮,此时点击该按钮也可以正确播放音乐。
经测试,最终得到的程序可以在手机上运行,并无任何bug及程序不响应现象。
4.2程序调试过程
ADT工具附有LogCat工具,在函数的开始结束及分支处设置特定文字标记内容,即可以在LogCat工具中打印调试内容,这对于bug的判断及追踪有很大帮助,并了解程序的运行流程。
图4-2是LogCat工具使用的截图。
图4-2LogCat工具使用的截图
总结
由于对android的接触较少,所以也遇到了一些问题,无论是哪种语言首先要有自己的思路,接下来就是通过语言的实现。
我主要遇到android的四大组件的理解和使用,刚开始不知道如何用相关的组件,而且android的组件相当的多,就老师上课讲的相关知识比较少,对于我们初学者学习比较困难,而且,只是不是那么的连贯和详细,上课的时间只是跟上老师再敲代码,实现一个具体的功能,但是不有真正的弄懂它的使用方法,所以,我们在课设中出现很多问题。
实习日记
2013年3月4日星期一晴
今天上午,全班同学被召集在计算机院机电大楼机房召开实习动员大会,与上次我们参加的生产实习不同的是,这一次要进行的是毕业实习,也以为着我们要在实习的过程中亲自动手尝试做项目。
有了之前的实习经历,心里还是蛮期待这一次能学到点之前没有学过的知识。
在动员大会上,班导给我们简要的介绍了一下我们实习的安排和目的,并且给我们介绍了带领我们进行生产实习的老师,裴老师是北大青鸟的一名培训教师,看上去也是比较和蔼,本次实习就由他给我们讲述安卓开发方面的内容,希望能在他的指导下,学到点真东西。
接下来的时间,裴老师给我们大概介绍了一下实习的内容,在复习Java基础知识的前提下,一步步接触安卓的内容,从明天开始正式的开启生产实习之路,加油!
2013年3月5日星期二晴
今天开始我们算是正式开始了生产实习,由于考虑到大家基础知识掌握的程度不同,裴老师决定先给我们复习一下Java的基础知识,从开发工具到基本语法,再从编程逻辑到数组与集合的操作,带领我们很快的过了一遍,并配套的布置了一些相关的题目,虽然讲得很快,但因为我们之前也都或多或少的学过,因此第一天的课程也算顺利,几乎没有留下任何问题。
在跟着裴老师复习基础的过程中,尽管只是一次复习和总结,但还是解决了一些之前一直模棱两可的问题,比如说集合那一部分,各种不同集合结构的区别与联系,以及它们的用法等,因此还是有一定收获的,与此同时,这也算是为这次的生产实习开了一个好头吧。
明天的课程还是复习有关Java面向对象编程的知
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- android 音乐 播放 毕业 实习 报告 日记