内蒙古科技大学通信工程专业实训报告Word格式.docx
- 文档编号:17203468
- 上传时间:2022-11-28
- 格式:DOCX
- 页数:12
- 大小:677.98KB
内蒙古科技大学通信工程专业实训报告Word格式.docx
《内蒙古科技大学通信工程专业实训报告Word格式.docx》由会员分享,可在线阅读,更多相关《内蒙古科技大学通信工程专业实训报告Word格式.docx(12页珍藏版)》请在冰豆网上搜索。
对程序主要的Activity都进行了相应的介绍和分析,包括对其使用的布局文件的基本介绍。
在最后进行了程序测试,对每一个实现的模块功能都做了测试,并且记录了相应截图用来展示测试结果,以观察程序应有的功能是否正常运行,以及发现程序中可能存在的问题。
所开发的程序界面追求简洁,操作容易上手,节约了用户的学习成本。
关键字:
Android;
视频播放;
Activity;
Mediaplayer
第一章引言
一.1软件开发背景
在这个信息化的时代,IT业已经成为世界发展的主流,我们对信息技术的依赖远远超过了对我们自己的依赖,计算机和手机已经成为我们日常生活中不可缺少的获得信息的渠道。
正因为如此,各种各样的软件层出不穷,我们的生活也因为各种各样的软件变的更有滋有味。
不缺乏娱乐性,也不缺乏教育意义,让我们从这些软件中受益匪浅,使我们看到了相比以前的巨大进步。
同时,随着科技的发展,计算机越来越精致,手机也越来越智能化,所以我们的依赖性也越来越大,越来越离不开这些给我们提供日常信息的工具。
手机也已不再仅仅是简单的人与人通话的工具,而是在很大程度上成为了我们获取信息的一个更好的渠道。
一个好的软件,能够标志一个手机品牌的地位。
所以,开发一款好的手机软件是相当必要的。
以前我们看电影,看视频,都要去电影院或者是影吧,而且时间有限,很不方便;
而现在是在电脑上或者手机上看视频,看小说,文档等等。
以此看来,一个好的手机视频播放器软件的开发是相当有必要的。
一.2Android简介
Android是Google于2007年宣布的一种基于Linux的自由及开放源代码的移动设备操作系统,可用于智能手机、平板电脑等,随后Google以Apache开源许可证的授权方式,发布了Android的源代码。
第一部Android智能手机HTCG1发布于2008年10月。
2014第一季度Android平台已占所有移动广告流量来源的42.8%,首度超越iOS,Android系统成为了全球通信与娱乐消费的第一大入口。
具有开源特性的Android平台也打破了之前Symbian、iOS等操作系统封闭或付费授权的模式,使得智能手机成本大大的降低。
而正是由于它开放源代码,使得手机产生更多个性化的应用。
现如今Android操作系统的应用可以说是琳琅琅满目,但是良莠不齐。
怀着对Google这一伟大公司的崇敬,我们决定在本次实训中尝试做一个基于Android的视频播放器,因为播放器是智能手机中必不可缺的重要功能,一个贴近用户,方便用户的多功能的播放器也是用户所渴望的。
一.2.1Android基本架构
Android系统架构为四层结构,从上层到下层分别是应用程序层、应用程序框架层、系统运行库层以及Linux内核层,结构图如下:
一.2.2Android开发基本知识
Android开发四大组件“
(1)Activity:
Android中,Activity是所有程序的根本,所有程序的流程都运行在Activity之中,Activity可以算是开发者遇到的最频繁,也是Android当中最基本的模块之一。
在Android的程序当中,Activity一般代表手机屏幕的一屏。
如果把手机比作一个浏览器,那么Activity就相当于一个网页。
在Activity当中可以添加一些Button、Checkbox等控件。
可以看到Activity概念和网页的概念相当类似。
一般一个Android应用是由多个Activity组成的。
这多个Activity之间可以通过intent进行相互跳转(通信),和网页跳转稍微有些不一样的是,Activity之间的跳转有可能返回值。
(2)Service:
Service是Android系统中的一种组件,它跟Activity的级别差不多,但是他不能自己运行,只能后台运行,并且可以和其他组件进行交互。
Service是没有界面的长生命周期的代码。
Service是一种程序,它可以运行很长时间,但是它却没有用户界面。
Service可以在和多场合的应用中使用,比如播放多媒体的时候用户启动了其他Activity这个时候程序要在后台继续播放,比如检测SD卡上文件的变化,再或者在后台记录地理信息位置的改变等等,总之服务总是在后台运行的。
(3)Broadcast:
在Android中,Broadcast是一种广泛运用的在应用程序之间传输信息的机制。
而BroadcastReceiver是对发送出来的Broadcast进行过滤接受并响应的一类组件。
可以使用BroadcastReceiver来让应用对一个外部的事件做出响应。
这是非常有意思的,例如,当电话呼入这个外部事件到来的时候,可以利用BroadcastReceiver进行处理。
(4)ContentProvider:
ContentProvider是Android提供的第三方应用数据的访问方案。
在Android中,对数据的保护是很严密的,除了放在SD卡中的数据,一个应用所持有的数据库、文件等内容,都是不允许其他直接访问的。
Andorid当然不会真的把每个应用都做成一座孤岛,它为所有应用都准备了一扇窗,这就是ContentProvider。
应用想对外提供的数据,可以通过派生ContentProvider类,封装成一枚ContentProvider,每个ContentProvider都用一个uri作为独立的标识。
一.2.3Android平台优势
(1)开放性
在优势方面,Android平台首先就是其开发性,开发的平台允许任何移动终端厂商加入到Android联盟中来。
显著的开放性可以使其拥有更多的开发者,随着用户和应用的日益丰富,一个崭新的平台也将很快走向成熟。
开发性对于Android的发展而言,有利于积累人气,这里的人气包括消费者和厂商,而对于消费者来讲,最大的受益正是丰富的软件资源。
开放的平台也会带来更大竞争,如此一来,消费者将可以用更低的价位购得心仪的手机。
(2)不受束缚
在过去很长的一段时间,特别是在欧美地区,手机应用往往受到运营商制约,使用什么功能接入什么网络,几乎都受到运营商的控制。
自从2007年iPhone上市后,用户可以更加方便地连接网络,运营商的制约减少。
随着EDGE、HSDPA这些2G至3G移动网络的逐步过渡和提升,手机随意接入网络已不是运营商口中的笑谈。
(3)丰富的硬件
这一点还是与Android平台的开放性相关,由于Android的开放性,众多的厂商会推出千奇百怪,功能特色各具的多种产品。
功能上的差异和特色,却不会影响到数据同步、甚至软件的兼容,如同从诺基亚Symbian风格手机一下改用苹果iPhone,同时还可将Symbian中优秀的软件带到iPhone上使用、联系人等资料更是可以方便地转移。
(4)方便开发
Android的开发语言是java,java曾经可是开发行业的龙头,随着互联网的发展,java的开发方向有所转变,从平台开发转到了移动互联网中的Android开发,这也就是说Android也是属于开源的开发,他的开源性使得他占据了众多的优势。
一.3软件简介
1.3.1开发环境:
Android用的是Linux内核,本系统在开发过程中,主要用到的就是当前Android应用层编程技术,因此,在编程环境上的选择是windows+Eclipse+java+AndroidSDK+AndroidDevelopmentTools。
Eclipse是一个开放源代码的、基于Java的可扩展开发平台。
Java是一种简单的,跨平台的,面向对象的,分布式的,解释的,健壮的安全的,结构的中立的,可移植的,性能很优异的多线程的,动态的语言。
在Eclipse编译IDE环境中,需安装ADTPlug-in,这是Android在Eclipse上的开发工具。
开源使一切都成为了可能。
1.3.2基本功能:
1、硬件解码播放视频,支持视频播放基本的控制。
2、支持流媒体播放,浏览器调用播放器播放。
3、通过WampServer服务可以无线播放电脑端的视频。
4、自适应分辨率设计,简洁风格的操作设计。
1.3.3操作方法:
1、全屏切换:
双击屏幕
2、播放/暂停:
长按屏幕
3、静音/恢复:
长按音量按钮
4、播放列表:
控制面板最右边的按钮(暂不支持编辑功能)
5、音量调节:
单击音量按钮,在弹出的音量显示区域触摸改变音量
1.3.4软件界面:
注:
控制面板可隐藏
第二章软件的总体设计
二.1总体设计思路
我们采用通过使用系统默认的解码器进行硬件解码播放视频的方式,因此它只支持系统默认的视频格式,如MP4、3GP等格式,一方面原因是如果通过软解码的话,播放视频的效率会很受影响,另一方面原因是我们的时间和编程经验有限,这也是主要原因。
Android框架提供了videoview类来封装MediaPalyer,我们通过调用videoview组件来实现应用中视频的播放,为了达到目的,我们对videoview做了相应的的修改,使之实现了我们需要的功能。
视频文件的扫描采用最基本的扫描文件系统的方法来扫描视频文件。
音量调节可以采用触摸操作的方式通过调用Android.Media包中的AudioManager类来调节。
另外我们加入过网络播放的功能,可以支持HTTP协议的流媒体,基于此,我们想到了可以通过本地搭建服务器的方法可以实现手机端通过无线局域网的连接播放电脑端的视频文件,可以突破手机存储空间的限制,也省去了将视频必须将视频拷贝到手机的时间。
这一功能的实现不是很难,但是有一定的创新性,也是我们的视频播放器的一个小亮点。
二.2设计结构框图
第三章软件详细设计
三.1播放控制的调用(部分)
三.1.1播放/暂停控制
相应程序代码(含注释):
bn3.setOnClickListener(newOnClickListener(){//监听bn3按钮的动作
publicvoidonClick(Viewv){//点击bn3键后
//TODOAuto-generatedmethodstub
cancelDelayHide();
//播放控制面板取消隐藏
if(isPaused){//如果暂停状态
vv.start();
//开始
bn3.setImageResource(R.drawable.pause);
//按钮变成暂停
hideControllerDelay();
//隐藏控制面板
}else{//如果是播放状态
vv.pause();
//暂停
bn3.setImageResource(R.drawable.play);
//按钮变成播放
}
isPaused=!
isPaused;
//改变播放状态
}
});
3.1.2错误信息代码
publicbooleanonError(MediaPlayermp,intwhat,intextra){
vv.stopPlayback();
isOnline=false;
newAlertDialog.Builder(VideoPlayerActivity.this)
.setTitle("
对不起"
)//弹出消息的标题
.setMessage("
您所播的视频格式不正确,播放已停止。
"
)//弹出消息
.setPositiveButton("
知道了"
//弹出按钮
newAlertDialog.OnClickListener(){
@Override
publicvoidonClick(DialogInterfacedialog,
intwhich){
vv.stopPlayback();
}
})
.setCancelable(false)
.show();
returnfalse;
三.2音量的调节及优化
3.2.1调用audiomanager方法
privatevoidinit(){
bm=BitmapFactory.decodeResource(mContext.getResources(),R.drawable.sound_line);
bm1=BitmapFactory.decodeResource(mContext.getResources(),R.drawable.sound_line1);
bitmapWidth=bm.getWidth();
bitmapHeight=bm.getHeight();
//setIndex(5);
//音量控制
AudioManageram=(AudioManager)mContext.getSystemService(Context.AUDIO_SERVICE);
//调用audiomanager我们定义的控制声音的对象
setIndex(am.getStreamVolume(AudioManager.STREAM_MUSIC));
}
3.2.2变量n的引用
设计思路:
我们将声音的控制分为了15个等级,n的值代表了声音的大小,n的值和当前音量值index相关
privatevoidsetIndex(intn){
if(n>
15){
n=15;
//触摸超过范围,n为最大值
}
elseif(n<
0){
n=0;
//触摸范围过小时,n为零
if(index!
=n){
index=n;
//如果当前的音量值不等于n令index为n
if(mOnVolumeChangedListener!
=null){//监测音量监听器状态,
mOnVolumeChangedListener.setYourVolume(n);
//如果音量键激活,音量改变
invalidate();
//重绘音量调节窗口
}
三.3本地服务器的搭建
3.3.1准备工作
当初学习PHP的时候曾经安装过WampServer集成开发环境,于是想到将它了用到我们的无线播放器上,Windows下的Apache+Mysql/MariaDB+Perl/PHP/Python,是一组常用来搭建动态网站或者服务器的开源软件,我前面讲过的:
开源使这一切成为了可能,使用WampServer,既简单易用又节省时间。
WampServer集成了世界使用排名第一的Web服务器软件ApacheHTTPServer(以下简称Apache),Apache是我们要用到的核心组件。
Apache是Apache软件基金会的一个开放源码的网页服务器,可以在大多数计算机操作系统中运行,由于其多平台和安全性被广泛使用,是最流行的Web服务器端软件之一。
它快速、可靠并且可通过简单的API扩展,将Perl/Python等解释器编译到服务器中。
我们下载了WampServer的最新版本并安装,安装过程十分简单。
准备工作做好后,服务器的搭建就已经完成了一半。
3.3.2WampServer的基本配置
WampServer的操作界面:
由于WampServer默认是禁止外网访问Apache服务器,我们需要在它的配置文件里修改一下。
使用记事本打开上图中所示的httpd.conf文件,查找关键字“denyfrom“,会发现一处“denyfrom”将其下的一行”Allowfrom127.0.0.1″之前加一个#号,表示注释掉,新插入一行,手动输入Allowfromall,然后重新启动服务。
3.3.3WampServer的使用方法
通过WampServer的Apache服务器可以访问上图中wwwdirectory里的内容,该文件夹作为一个电脑端的视频库,可以在桌面上建立一个该文件夹的快捷方式。
查看电脑在局域网中的IP地址,如果IP地址是192.168.253.1的话,想要播放电脑里的视频文件名为Test.MP4,在Wamplayer的URL中输入192.168.253.1/Test.MP4然后按回车即可播放。
第四章实训心得
当听到老师说可选的题目时,我十分得惊讶,因为给的题目都是和安卓相关的,之前我没怎么接触过,只是因为喜欢Google这家公司和对智能手机感兴趣,曾经尝试着搭建了一下Android的开发环境而已,并没有开发过软件,也没有相关的经验。
但是我还是选择了做安卓相关的课题。
因为是自己喜欢的事所以能尽力的去做。
通过这次课题设计,不仅了解到了Android的一些没接触过的知识,也巩固了原有的java基础知识,并且对java语言,软件开发环境和硬件平台搭建有了新的认识。
这两周以来感觉自己过得十分充实,从一开始一集一集地看教学视频,到后来整天的泡开发者论坛向大家请教,以及和老师的沟通,最终我们完成了预期的基本目标。
从这次实训中我还了解到了许多学习方法,面对没有接触过的东西,我们要有快速的自学能力,因为没人给你讲解如何做,只有自己翻阅资料和上网查询,所以必须具备这种能力.另外,做软件最总要的就是要有耐心,我们可以学习网络上的代码和思路,只要学到了自己能应用到就可以。
但是我们的软件还存在许多缺陷,有许多需要改进的地方,比如说手机与电脑连接方法较复杂,没有播放列表,因此学习成本较高。
还有许多功能可以添加,比如随着智能手机硬件的提升,我们还可以加入软件解码,播放更多的视频格式等。
这次实训也为我将来的毕业设计打下了一定的基础,我觉得十分有意义。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 内蒙古 科技大学 通信工程 专业 报告