您好,欢迎来到智榕旅游。
搜索
您的当前位置:首页Android课程设计

Android课程设计

来源:智榕旅游


枣 庄 学 院 信息科学与工程学院 课程设计任务书

题目: 视频播放器的设计与实现

学 号: 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)如下:

xmlns:android=\"http://schemas.android.com/apk/res/android\" 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=\"@string/hello\" />

android:layout_width=\"fill_parent\" android:layout_height=\"wrap_content\" android:text=\"键入文件名称\" android:textSize=\"20dp\" /> android:id=\"@+id/edittext\"

android:layout_width=\"fill_parent\"

6

android:layout_height=\"wrap_content\" />

android:id=\"@+id/starttoplay\"

android:layout_width=\"fill_parent\" android:layout_height=\"wrap_content\" android:text=\"Open file\" android:textSize=\"20dp\" />

android:id=\"@+id/video\"

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:id=\"@+id/quit\"

android:layout_width=\"fill_parent\" android:layout_height=\"wrap_content\" android:text=\"Quit\"

android:textSize=\"20dp\" />

布局主体为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:

xmlns:android=\"http://schemas.android.com/apk/res/android\"

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=\"@string/hello\" />

14

android:layout_width=\"fill_parent\" android:layout_height=\"wrap_content\" android:text=\"键入文件名称\" android:textSize=\"20dp\" /> android:id=\"@+id/edittext\"

android:layout_width=\"fill_parent\" android:layout_height=\"wrap_content\" />

android:id=\"@+id/starttoplay\"

android:layout_width=\"fill_parent\" android:layout_height=\"wrap_content\" android:text=\"Open file\" android:textSize=\"20dp\" />

android:id=\"@+id/video\"

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:id=\"@+id/quit\"

android:layout_width=\"fill_parent\" android:layout_height=\"wrap_content\" android:text=\"Quit\"

android:textSize=\"20dp\" />

 Strings.xml:

视频播放器 VideoPlayer

15

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- zrrp.cn 版权所有 赣ICP备2024042808号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务