基于Android手机平台的多媒体播放器.docx
《基于Android手机平台的多媒体播放器.docx》由会员分享,可在线阅读,更多相关《基于Android手机平台的多媒体播放器.docx(25页珍藏版)》请在冰豆网上搜索。
基于Android手机平台的多媒体播放器
中国石油大学(华东)
基于Android手机平台的多媒体播放器
设计报告
组长:
廖孟
成员:
李鹏飞
中国石油大学(华东)计算机与通信工程学院通信工程系
二011年7月
设计名称
基于Android手机平台的多媒体播放器
完成时间
2011/7
验收时间
2011/7
本组成员情况
姓名
学号
承担的任务
成绩
廖孟
08082213
音乐播放器的实现
将APK应用程序移植到S3C6410开发板
设计报告的书写
李鹏飞
08082223
软件启动动画的实现
视频播放器的实现
录音功能的实现
图片浏览器的实现
网页浏览器的实现
贪吃蛇游戏的实现
系统整合
PPT的制作
本组设计的功能描述(含所有实现的模块的功能)
我们设计的多媒体播放器含有以下7大功能模块,各功能模块的具体功能描述如下:
1.音乐播放器
控制模块:
播放暂停上一首/下一首快进快退
显示模块:
进度条及对应的时间点更新歌曲总时间歌词同步显示
设置模块:
播放模式的选择是否显示歌词
2.视频播放器:
两个版本,分别能播放.3gp的视频和.Mp4视频,不过还只能播放一个,对视频的控制包括:
暂停,播放,重放,停止。
3.录音:
单击录音就可以开始录音了,然后可以停止,你录的声音就在上面列表中显示,单击你要播放的,它就可以调用系统自带的播放器播放。
4.图片浏览:
可以实现你储存的照片的浏览,并且单击这个照片能在上面放大显示。
可以浏览查看。
5.网页浏览:
可以通过网络连接实现网上冲浪,同时你可以输入网址进入,也有上一页,下一页功能。
6.贪吃蛇游戏:
通过UP键开始,然后上下,左右键控制游戏。
然后可以暂停,程序结束后可以按UP键继续开始玩。
7.程序启动画面:
在软件启动的时候,activity一开始调用.3gp视频播放,然后再进入主界面,.3gp视频放在我们的player文件夹里。
用到的主要技术有:
(1)Android系统的四大组件:
Activity——提供可视化的界面
Service——运行在后台的服务程序
BroadcastReceiver——广播事件处理机制
ContentProvider——使应用程序相互访问数据
(2)Sqlite数据库
(3)Android系统升级——从Android1.5升到Android2.1
(4)APK应用程序的移植——从模拟器移植到S3C6410开发板和Android真机上
本组设计的主要特色
1,音乐播放器具有同步显示歌词的功能
2,界面时尚、超酷,增加用户体验
3,音乐播放器中用到了Service服务,这样可以保证用户离开音乐播放界面,做别的事情的同时,仍然可以听音乐
4,对歌曲的管理用到了SqLite数据库,操作更加方便快捷
5,视频能播放一般的3gp视频,满足用户电影需求
6,图片浏览可以在上面放大显示
7,贪吃蛇游戏可以让用户满足一下游戏欲望
8,软件启动动画让用户感到更酷
本组设计的体系结构
图一多媒体播放器的体系结构图
我们设计的多媒体播放器共含有7大功能模块,他们分别是音乐播放器、视频播放器、录音器、图片浏览、网页浏览、游戏天地和软件启动动画。
当用户启动模拟器或S3C6410开发板或真机后,经过一段开机动画,就会进入主界面,然后,用户就可以根据自己的需要,对各个模块进行操作。
本组设计中各个部件的设计与特色
图二多媒体播放器的设计类图
我们设计的多媒体播放器从层次上看,有以下四层:
第一层:
软件开机动画start.java
第二层:
主界面ChanceMode.java,显示本软件提供的六大功能模块,音乐播放器、视频播放器、录音器、图片浏览、网页浏览、游戏天地。
第三层:
各个功能模块的界面。
其中,音乐播放器由MainActivity.java这个类作为接口进入;视频播放器由vedio.java这个类作为接口进入;录音器由recor1.java这个类作为接口进入;图片浏览由Picture.java这个类作为接口进入;网页浏览由browers.java这个类作为接口进入;游戏天地由Snake.java这个类作为接口进入。
第四层:
用户对各个功能模块的操作,例如,在音乐播放中,对歌曲进行快进、快退操作;在视频播放器中,对视频进行播放,暂停操作等。
图三多媒体播放器的系统流程图
说明:
图三提供了用户操作我们开发的多媒体播放器的具体流程,并且给出了当用户进行某种操作后,系统给出的操作结果。
图四音乐播放器的系统流程图
主要部件有:
(1)音乐播放器
其特点在于:
歌词同步显示并能够显示中文歌词能播放.mp3格式的歌曲能对播放模式进行设置
(2)视频播放器
其特点在于:
能播放.3gp格式的视频
(3)录音器
其特点在于:
能够录音
(4)图片浏览器
其特点在于:
能浏览图片并且能放大图片
(5)网页浏览器
其特点在于:
手动输入网址网页上下页的切换
(6)其游戏天地:
其特点在于:
贪吃蛇游戏
本组设计的软件程序模块说明与使用手册
我们设计的多媒体播放器有以下七大功能模块:
软件启动动画、音乐播放器、视频播放器、录音器、图片浏览、网页浏览、游戏天地。
其中,
软件启动动画
start.java完成了软件启动动画。
ChanceMode.java进入多媒体播放器的主界面。
音乐播放器
(1)入口界面:
MainActivity.java
从ChanceMode跳转到MainActivity
(2)播放列表:
ListActivity.java
显示播放歌曲列表
(3)播放歌曲界面:
MusicActivity.java
显示歌名、歌词及歌曲时间等信息。
同时提供给用户一系列的操作:
播放、暂停、上一首/下一首、快进、快退
(4)对歌曲操作Service:
MusicService.java
用到了Service服务,这样做的好处就是当用户离开了播放歌曲界面,去做别的事情时,后台的Service不会被打断,歌曲仍然在播放。
(5)数据库管理:
DBHelper.java
SqLite数据库用于创建music数据表,同时对数据表进行插入、更新、删除、查询等操作。
对歌曲的管理就会更加高效、方便。
(6)设置界面:
SettingActivity.java
用户可以选择播放模式(单曲播放单曲循环顺序播放随机播放)四种中的任一种,同时也可以选择是否需要显示歌词。
视频播放器
入口界面:
执行vedio.java就会进入视频界面,然后你可以实现你的操作,
暂停,播放,重新播放,停止
录音器
入口界面:
执行recor1.java就会进入录音界面,然后你可以点击录音,开始进行录音,然后按停止,停止,单击要播放的录音,系统就会自动调用自带的播放器播放录音
图片浏览
入口界面:
执行Picture.java就会进入图片界面,你可以实现图片浏览播放,在上面放大显示
网页浏览
入口界面:
执行browers.java进入浏览器界面,你可以实现上网功能:
输入网址,上一页,下一页操作。
游戏天地
入口界面:
执行Snake.java进入贪吃蛇界面,你可以通过UP键开始,然后通过上下,左右的方向键控制方向,然后通过暂停,按UP键重新开始。
使用手册:
开始时下载我们的player.apk程序包到手机,如下:
然后点击安装到手机,由于我们的软件是android2.2版本的,所以最好是android2.2版本的手机。
当用户打开Android手机模拟器(或者Android手机、S3C6410开发板)后,点击我们软件的小图标
,就会有一段软件启动画面,然后就会进入我们的主界面
。
然后,用户就能根据自己的需要,享受我们提供的各种多媒体服务。
本组设计中的关键模块流程图及程序实现说明
音乐播放器的实现
音乐播放器是我们设计的多媒体播放器中最重要的一个模块,也是比较难的一个模块。
它包含以下三大模块:
控制模块:
播放暂停上一首/下一首快进快退
显示模块:
进度条及对应的时间点更新歌曲总时间歌词同步显示
设置模块:
播放模式的选择是否显示歌词
其中,进度条及对应时间的同步更新、歌词的同步显示则是我们碰到的最为棘手的问题。
音乐播放器的系统流程图如图五所示。
现将具体的程序实现说明如下:
(1)入口界面:
MainActivity.java
从ChanceMode(系统主界面)跳转到MainActivity
(2)播放列表:
ListActivity.java
显示播放歌曲列表
(3)播放歌曲界面:
MusicActivity.java
显示歌名、歌词及歌曲时间等信息。
同时提供给用户一系列的操作:
播放、暂停、上一首/下一首、快进、快退
(4)对歌曲操作Service:
MusicService.java
用到了Service服务,这样做的好处就是当用户离开了播放歌曲界面,去做别的事情时,后台的Service不会被打断,歌曲仍然在播放。
(5)数据库管理:
DBHelper.java
SqLite数据库用于创建music数据表,同时对数据表进行插入、更新、删除、查询等操作。
对歌曲的管理就会更加高效、方便。
(6)设置界面:
SettingActivity.java
用户可以选择播放模式(单曲播放单曲循环顺序播放随机播放)四种中的任一种,同时也可以选择是否需要显示歌词。
(二)视频播放器的实现:
一开始系统点击视频播放器的图标进入视频播放器的界面,执行vedio.java我们就可以执行视频播放器的操作了:
播放,暂停,重放,停止,播放目录,退出,版本。
你可以随意的使用这最关键的是对SurfaceView的使用,这是最难点,你要考虑很多方面,接电话操作的函数,各个操作时要执行到位。
图五音乐播放器的系统流程图
本组设计主要测试结果与性能分析
(1)模拟器测试结果:
在模拟器上大体不错,界面很酷,并且很整齐,功能都可以实现。
就是音乐播放器不支持汉语,并且文件命名一定要用英文,否则导不进去,即使导进去也不显示。
在手机上界面需要调整一下,因为对于不同屏幕的手机要做不同的调整,不过经过界面美化,我们的界面对于不同的手机都大体满意了。
各个功能都可以正常运行,并且播放器也支持中文显示了。
下面是模拟器上的实现:
1:
软件图标:
2:
启动画面:
3:
软件主界面:
4:
音乐播放器界面:
5:
视频播放器界面:
6:
录音界面:
7:
上网界面:
8:
游戏界面:
测试结果就到这了,中间遇到了好多次的情况一直在修改各个模块,并且有时界面也不行,来回的调整,并且有时程序实现时,考虑的不够多,然后就达不到预期的情况,不过经过google一下,错误被一个个解决了,功能逐渐被完善,最后大体实现了预期的设计效果。
(2)真机测试结果
本来是移植到s3c6410上的,因为版本不对,升级又来不及。
然后就在手机上测试了。
我们把我们的.apk安装包放到手机上,然后安装到手机里,一开始各个模块都还行,就是音乐播放器播不了,然后调了一下午,发现了很多问题,并且需要下面这句话:
name=“android.permission.READ_PHONE_STATE”/>
最后根据不同的手机屏幕,我们又美化了一下我们的界面,使它适合于不同的手机。
课程设计总结
设计总结:
通过这次暑期实习,我认为,要出色地完成本次暑期实习,有以下几点需要特别注意:
(1)要明确系统的需求分析。
我们既然选择做多媒体播放器,而不仅仅是音乐播放器,那么,首先,就应该明确我们的系统应该包含哪些功能模块。
否则,在软件设计的后期,再想添加新的功能就需要花费大量的时间。
(2)要对Android系统有一定的了解。
在我们的软件设计过程中,大量的用到了Android系统的四大组件:
Activity(提供可视化的界面)、Service(运行在后台的服务程序)、BroadcastReceiver(广播事件处理机制)、ContentProvider(使应用程序相互访问数据)。
只有对这些组件熟练掌握后,才能够真正设计出稳健高效的多媒体播放器。
(3)要对Java语言熟练掌握。
Android软件开发都是用Java语言写的,而Java又是由类组成的。
而Java语言本身又含有众多机制,只有深刻理解这些机制后,才能轻松地实现自己想要的功能
(4)要对界面设计有一定的了解。
Android所有的布局都放在了res/layout中,而所有的菜单选项都放在了res/menu中。
合理的布局对人性化的界面也是至关重要的。
(5)要具有快速上网查资料的能力。
面对从没接触过的知识,我认为上手才是最重要的。
另外,网上的很多现成的资料都可借鉴、学习。
在熟练理解了别人的应用程序的基础上,再做二次开发。
还需改进的地方:
音乐播放器:
1.部分中文歌词不能显示
2.不能实现播放模式的选择
3.界面设计还需更加友好
4.只能支持.mp3格式的,还应支持.wma等其他格式的。
视频播放器:
1.只能支持.3gp格式的,还应支持.mp4、.wmv等其他格式的。
2.只能播放一个视频,以后还要扩展成能播放多个视频。
游戏天地:
游戏个数太少,还需增加更多精彩有趣的游戏
另外,还需将自己的apk应用程序移植到S3C6410开发板
个人总结1——廖孟的收获与感悟
自从选了“Android多媒体播放器开发”这个课题之后,就一直感觉要想出色完成任务有点困难。
原因主要有以下几点:
一:
Android从没接触过,一点不会;二:
任务太重,共含有六大功能模块,而且还需将自己的apk应用程序移植到S3C6410开发板。
但另一方面,心里又想,这不正是一个锻炼自己能力的极好机会吗?
的确,通过这将近20天的实习,我学到了很多书本上学不到的东西,心里也有很多的感触与收获。
现将自己的收获总结如下:
1.现学现做的能力。
找一本参考书,对某项内容的原理大致了解后,直接运行它的源代码,先观察效果,给大脑直接的印象,然后再去理解程序;
2.团队协作意识。
身为团队的一员,必须与自己的队友合作。
尤其是刚开始做时,要将任务分配明确,还要定期监督各自的进度。
3.上网查资料的能力。
网络是一个十分强大的信息工具。
网上有大量的Android参考资料以及很多著名的Android论坛,这上面为我提供了大量的有用信息。
尤其是当碰到错误时,去网上搜一搜,或许很快就能到到解决方法。
4.英语阅读能力。
因为很多资料都是起源于国外,而很多参考书也是英文的。
此外,Android官网以及著名的Android论坛都是英文版,因此,具备一定的英语阅读能力也是非常重要的。
5.与同学间的交流探讨。
这次暑期实习选Android多媒体播放器开发的共有三个团队,我感觉大家应该经常交流才对。
因为这样,有助于大家开拓自己的思维,取长补短,共同解决碰到的问题。
其实,这也是一个学习的过程。
个人总结2——李鹏飞的收获与感悟
*总的来说,这个实习我们学到的好多的东西,从一开始的什么都不知道,经过一点一点的摸索,一点一点的设计,慢慢的知道了大概的流程。
在纠结中慢慢的找到了方向。
*在实习前,确实学过了一点java的知识,想一想确实有一点用处。
但是对于android系统的设计还是远远不够的,这次实习相当于现学现用,所以挑战蛮大的,不过总的来说达到了预期的效果。
*中间遇到了好多的问题,一开始是设计时,不过这在一开始设计大概轮廓时表现的并不是特别明显,也就是页面跳转,布局问题,这都比较容易实现。
最让人纠结的是各个模块布局的实现,这要考虑好多好多的情况,并且即使考虑到了也不一定能运行下去,通过各个例子的分析,别人算法的实现,总算粗糙的实现了自己功能,不过总的来说对于自己功能实现已经足够了。
*通过这次实习我们对于android系统的开发有了初步了解,虽然时间很短,学的并不是很多,但是基础知识大概掌握到了,为以后的进一步学习打下了良好的基础。
最后,衷心感谢俞辉老师和李咏老师的悉心指导!
教师评语
签名: