枣 庄 学 院 信息科学与工程学院 课程设计任务书
题目: 视频播放器的设计与实现
学 号: 201112230206 37 40
姓 名: 郭海宾 玄令旺 张卫卫
专 业: 计算机网络技术 课 程: android程序设计 指导教师: 马怀志 职称: 讲师
完成时间:2013年11月----2013年12月
枣庄学院信息科学与工程学院制
2013年12月25日
1
课程设计任务书及成绩评定
课程设计的任务和具体要求 任务:一个基于android平台的视频播放器 具体要求:(1) 能够播放.avi, .mp4等文件 (2) 能处理简单的异常,例如文件不存在等 (3) 能正常启动,退出 (4) 能够在手机上使用该系统 指导教师签字: 、 日期: 指导教师评语 成绩: 指导教师签字: 日期:
2
课程设计所需软件、硬件等 软件:Eclipse,SDK,android平台 硬件:pc机一台 课程设计进度计划 起至日期 工作内容 备注 2013.12.12- 2013.12.20 1.收集素材 2.编写程序 3.调试代码 4.测试代码 参考文献、资料索引 序号 文献、资料名称 编著者 出版单位 1. android应用开发详解 郭宏志 电子工业出版社 2. Android程序设计 青岛东合信息技术有限公司
3
目 录
1 软件产品介绍 ...................................................................................................................... 5
1.1 软件产品名称............................................................................................................. 5 1.2 软件总体功能............................................................................................................. 5 2 软件开发环境 ...................................................................................................................... 5
2.1 JDK安装 .................................................................................................................... 5 2.2 Android SDK安装以及系统设置 ............................................................................. 5 2.3 Eclipse安装以及ADT工具的安装.......................................................................... 5 3 软件功能说明 ...................................................................................................................... 6
3.1 软件布局..................................................................................................................... 6
3.2 视频文件搜索功能..................................................................................................... 7 3.3 播放控制功能............................................................................................................. 8 3.4 其他功能..................................................................................................................... 9 4 程序流程图 ........................................................................................................................ 10 5 软件界面及程序主要代码 ................................................................................................ 10
5.1 软件在虚拟机上调试及分析................................................................................... 10 5.2 软件在手机上的调试及分析...................................................错误!未定义书签。 5.3 程序主要代码........................................................................................................... 11 6 设计总结 ............................................................................................................................ 12 7 附录..................................................................................................................................... 12
4
1 软件产品介绍
1.1 软件产品名称
一个基于Android平台的视频播放器
1.2 软件总体功能
(1) 能够播放.avi, .mp4等文件
(2) 能处理简单的异常,例如文件不存在等 (3) 能正常启动,退出 (4) 能够在手机上使用该系统
2 软件开发环境
2.1 JDK安装
JDK是Java语言的原创者推出的原始开发环境。采用JDK开发Java程序能够很快理解程序中各部分代码之间的关系,有利于理解Java面向对象的设计思想。在Windows上安装JDK非常简单,访问Oracle官方网站下载页面,网址为http://www.oracle.com/technetwork/indexes/downloads/index.html,也可从其他网站下载。下载完成后,双击运行JDK安装程序并根据提示设定环境变量。
2.2 Android SDK安装以及系统设置
下载好SDK包后,将zip文件解压缩至合适的地方。在下文中,默认SDK安装目录为$SDK_ROOT 。
Windows下,右键点击【我的电脑】,选择【属性】,在【高级】页中,点击
【环境变量】按键,在弹出的对话框中双击“系统变量”中的变量“Path”,将$SDK/tools的完全路径加入其中。 通过将$SDK/tools加入系统路径,在运行adb和其它一些命令行工具时就不需要键入完全路径名了。需要注意到是,当升级了SDK后,如果安装路径有变动的话,不要忘记了更新PATH变量的设置,将其指向变动后的路径。 配置SDK有两种方法:第一种,通过SDK下载器自动下载和配置。适合网络好,下载速度快的情况;第二种,借助工具下载SDK文件,手工配置。适合网络不是很好,下载速度慢的情况下。
2.3 Eclipse安装以及ADT工具的安装
下载Eclipse安装包后,无需安装,只需解压缩,点击“eclipse.exe”文件即可运行。
Android为Eclipse定制了一个插件,即Android Develpoment Tools(ADT),
5
目的是为用户提供一个强大的综合环境用于开发Android应用程序。ADT扩展了Eclipse的功能,可以让用户快速建立Android项目,创建应用程序界面,在基于Android框架API的基础上添加组件,以及用SDK工具集调试应用程序,甚至导出签名(或未签名)的APKs以便发行应用程序。安装ADT:启动Eclipse,选择Help>Install New Software,在出现的对话框里,点击Add按钮,在对话框的name一栏输入\"ADT\然后点击Archive...,浏览和选择已经下载的ADT插件压缩文件,点击OK。返回可用软件的视图,你会看到这个插件,然后选择Developmer Tools,点击Next,最后重启Eclipse。
软件开发环境搭建好后,便可以开始创建项目了。
3 软件功能说明
3.1 软件布局
此为一个视频播放器,设计的软件需要支持快进、快退、暂停、继续和进度拖曳等功能。视频播放软件工程文件主要包括src文件夹(Java源码)、res文件夹(资源文件)和AndroidMainfest.xml(程序清单)。软件主要由Activities组成,每个Activity对应一个模块。不同的Activity通过Intent进行通信和相互调用。软件的布局(main.xml)如下:
android:layout_width=\"fill_parent\" android:layout_height=\"fill_parent\" > android:layout_width=\"fill_parent\" 6 android:layout_height=\"wrap_content\" />
布局主体为LinearLayout,由多个TextView、Button等类组成。
3.2 视频文件搜索功能
此程序需要输入文件的绝对路径,例如\"/sdcard/video.mp4\";输入文件名字之后,点击open file,即可搜索到你想要播放的视频,部分程序如下: if(video.exists()){
videoView.setVideoPath(video.getAbsolutePath());//文件绝对路径
videoView.setMediaController(mediaController);//设置videoView与mediaControler的关联
mediaController.setMediaPlayer(videoView); videoView.requestFocus();
}
7
图1
3.3 播放控制功能
在打开播放文件之后,点击画面的空白部分,这时会弹出视频播放控制按钮,分别是后退、播放/暂停和前进,下面显示视频播放时间轴,可以进行拖曳。
图2
点击qiut即可退出界面
8
图3
3.4 其他功能
此程序还能处理简单的异常,输入文件后,若文件不存在,会提醒你“很抱歉,您输入的文件不存在,请重新输入”,若文件格式不符合,也会有相应的提示。部分程序如下:
if(video.exists()){......} else{
Toast.makeText(VideoPlayerActivity.this,\"很抱歉,您输入的文件不存在,请重新输入\
}
图4
9
4 程序流程图
明确了主要功能后,就需要对此软件基本流程有一个总体规划,本款手机视频播放器基本流程图如图所示。
开 始 打开视频播放器 输入文件的绝对路径 N Y 点击Open file打开文件 进入视频播放界面 退出软件
5 软件界面及程序主要代码
5.1 软件在虚拟机上调试及分析
此次调试采用的虚拟机是Android 2.1,并且分别导入avi,mp4,mp3等文件进行调试。一开始系统点击视频播放器的图标进入视频播放器的界面,执行VideoPlayerActivity.java就可以执行视频播放器的操作了:播放,暂停,快进,快退,退出。
在调试过程中,遇到了不少问题,大致如下:
1)Unable to resolve target 'android-2'
原因:将一个低版本的Android项目导入到workspace里通常会在第一时间出现这样的错误提示。
解决办法:将default.properties属性文件中的Project target修改为android-7即可,android 2.1对应的API为7.
2) 有一个小的错误,如向sdcard中导入文件不能使用中文路径,在此不一一列出。
10
在解决这些问题过程中,更加熟练地掌握了虚拟机的调试方法,最终能成功地播放文件。在模拟器上大体不错,界面很酷,并且很整齐,功能都可以实现。下面是在模拟器上的实现:
文件路径,打开播放器,在第一个输入框中输入要播放的文件的打开路径,点击下方Open file 即可打开文件,手机屏幕上提示显示“点击屏幕获取播放控制键”,按指示点击,跳出控制键,点击播放键,即可听音乐或放视频。控制小界面上有播放/暂停、上一曲/快退、下一曲/快进控制键,以及播放进度显示条,我们亦可点击进度条,使播放文件迅速跳转到我们需要的地方。
5.2 程序主要代码
此程序需要输入文件的绝对路径,例如\"/sdcard/video.mp4\";输入文件名字之后,点击open file,即可搜索到你想要播放的视频,部分程序如下:
if(video.exists()){
videoView.setVideoPath(video.getAbsolutePath());//文件绝对路径
videoView.setMediaController(mediaController);//设置videoView与mediaControler的关联
mediaController.setMediaPlayer(videoView); videoView.requestFocus(); } 输入文件后,若文件不存在,会提醒你“很抱歉,您输入的文件不存在,请重新输入”,若文件格式不符合,也会有相应的提示。部分程序如下:
else{
Toast.makeText(VideoPlayerActivity.this,\"很抱歉,您输入的文件不存在,请重新输入\
}
设置窗口的像素格式、,实现按钮
//public Window getWindow () 返回当前activity的window
//void android.view.Window.setFormat(int format)
//public void setFormat (int format) 设置窗口的像素格式 //PixelFormat.TRANSLUCENT 透明格式
getWindow().setFormat(PixelFormat.TRANSLUCENT); setContentView(R.layout.main);
videoView=(VideoView)findViewById(R.id.video); editText=(EditText)findViewById(R.id.edittext); openButton=(Button)findViewById(R.id.starttoplay); openButton.setOnClickListener(new startlistener()); qiutButton=(Button)findViewById(R.id.quit);
qiutButton.setOnClickListener(new qiutlistener()); mediaController=new MediaController(this);
11
6 设计总结
在此次课程设计中,不仅了解到了android的有关知识,而且学习了Java语言以及eclipse等硬件环境。有几点需要特别注意:
(1)要明确课程设计的要求,想好系统应该包含哪些功能模块。否则,在软件设计的后期,再想添加新的功能就需要花费大量的时间。
(2)要对android系统有一定的了解。在软件设计过程中,大量的用到了android系统的四大组件:Activity(提供可视化的界面)、Service(运行在后台的服务程序)、Broadcast Receiver(广播事件处理机制)、Content Provider(使应用程序相互访问数据)。只有对这些组件熟练掌握后,才能够真正设计出稳健搞笑的多媒体播放器。
(3)要对Java语言熟练掌握。Android软件开发都是用Java语言写的,而Java又是由类组成的。而Java语言本身又含有众多机制,只有深刻理解这些机制后,才能轻松地实现自己想要的功能。
(4)要对界面设计有一定的了解。Android所有的布局都放在了res/layout中,而所有的菜单选项都放在了res/menu中。合理的布局对人性化的界面也是至关重要的。
(5)要具备快速上网查资料的能力。面对从没接触过的知识,要有信心才是最重要的。另外,网上的很多现成的资料都可借鉴、学习。在熟练理解了别人的应用程序的基础上,再做二次开发。 还需要改进的地方:
1.播放器的播放界面设置较为简单,不够精美和方便,看过班上很多同学设计的播放器有些甚是完整,完全可以在手机上作为专门的媒体播放器使用,可以向他们学习,加以改进,使我们的作品也更完善;
2.只支持.avi,.mp3,.mp4格式的,还应支持.flv等其他格式的; 3.只能播放一个视频,以后还要扩展成能播放多个视频的;
4.播放音频文件时不能显示播放歌曲的歌词,这是一个较大的缺陷,在程序上可以进行补充和调整,对于下载的模拟器中一些功能的调用更全面,可以将之改进; 5.播放音频文件时不能实现播放模式的选择。
(6)与同学间的交流探讨。此次我们团队为两个人,我们经常交流,有助于开拓自己的思维,取长补短,共同解决碰到的问题,这正是一个相互学习的过程。
8 附录
VideoPlayerActivity.java:
package Ld.videoPlayer;
12
import java.io.File;
import android.app.Activity;
import android.graphics.PixelFormat; import android.os.Bundle; import android.view.View;
import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText;
import android.widget.MediaController; import android.widget.Toast; import android.widget.VideoView;
public class VideoPlayerActivity extends Activity { /** Called when the activity is first created. */ VideoView videoView;
private String fielname;
MediaController mediaController; EditText editText; Button openButton; Button qiutButton; @Override
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);
//public Window getWindow () 返回当前activity的window //void android.view.Window.setFormat(int format)
//public void setFormat (int format) 设置窗口的像素格式 //PixelFormat.TRANSLUCENT 透明格式
getWindow().setFormat(PixelFormat.TRANSLUCENT); setContentView(R.layout.main);
videoView=(VideoView)findViewById(R.id.video); editText=(EditText)findViewById(R.id.edittext); openButton=(Button)findViewById(R.id.starttoplay); openButton.setOnClickListener(new startlistener()); qiutButton=(Button)findViewById(R.id.quit);
qiutButton.setOnClickListener(new qiutlistener()); mediaController=new MediaController(this); }
class startlistener implements OnClickListener{
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
fielname=editText.getText().toString();
13
System.out.println(fielname);
//File video=new File(\"/sdcard/re.mp4\"); File video=new File(fielname); //若文件被找到
if(video.exists()){
videoView.setVideoPath(video.getAbsolutePath());//文件绝对路径
videoView.setMediaController(mediaController);//设置videoView与mediaControler的关联
mediaController.setMediaPlayer(videoView); videoView.requestFocus(); } else{
Toast.makeText(VideoPlayerActivity.this,\"很抱歉,您输入的文件不存在,请重新输入\
} } }
class qiutlistener implements OnClickListener{
@Override
public void onClick(View v) {
// TODO Auto-generated method stub finish(); } } }
Main.xml:
android:orientation=\"vertical\" android:layout_width=\"fill_parent\" android:layout_height=\"fill_parent\" > android:layout_width=\"fill_parent\" android:layout_height=\"wrap_content\" android:text=\"键入文件名称\" android:textSize=\"20dp\" /> android:layout_width=\"fill_parent\" android:layout_height=\"wrap_content\" /> android:layout_width=\"fill_parent\" android:layout_height=\"wrap_content\" android:text=\"Open file\" android:textSize=\"20dp\" /> android:layout_width=\"fill_parent\" android:layout_height=\"fill_parent\" /> android:text=\" 点击界面获取播放控制键\" android:textSize=\"20dp\" /> android:layout_width=\"fill_parent\" android:layout_height=\"wrap_content\" android:text=\"Quit\" android:textSize=\"20dp\" />
Strings.xml:
15
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- zrrp.cn 版权所有 赣ICP备2024042808号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务