安卓课程论文.doc

上传人:聆听****声音 文档编号:605753 上传时间:2023-04-29 格式:DOC 页数:9 大小:1.86MB
下载 相关 举报
安卓课程论文.doc_第1页
第1页 / 共9页
安卓课程论文.doc_第2页
第2页 / 共9页
安卓课程论文.doc_第3页
第3页 / 共9页
安卓课程论文.doc_第4页
第4页 / 共9页
安卓课程论文.doc_第5页
第5页 / 共9页
安卓课程论文.doc_第6页
第6页 / 共9页
安卓课程论文.doc_第7页
第7页 / 共9页
安卓课程论文.doc_第8页
第8页 / 共9页
安卓课程论文.doc_第9页
第9页 / 共9页
亲,该文档总共9页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

安卓课程论文.doc

《安卓课程论文.doc》由会员分享,可在线阅读,更多相关《安卓课程论文.doc(9页珍藏版)》请在冰点文库上搜索。

安卓课程论文.doc

湖南农业大学课程论文

学院:

专业:

班级:

姓名:

题目:

视频播放器

学号:

指导老师:

完成时间:

目录

1搭建Android开发平台 3

1.1下载软件 3

1.2安装软件和配置环境 3

1.2.1安装JDK 3

1.2.2具体设置JAVA_HOME、Path变量、classpath环境变量 3

1.2.3安装Eclipse配置Android环境 3

2基于Android平台的视频播放器设计 6

2.1视频播放器程序对应得布局文件 6

2.2视频播放器实现具体内容 7

2.2.1创建控件实例与变量 7

2.2.2初始化计时器 7

2.2.3onTouchEvent()方法 8

2.2.4SeekBar的回调方法 8

2.2.5SurfaceHolder的回调方法 9

2.3运行效果模拟(手机运行) 9

摘要:

随着安卓手机的兴起,一款具有个性化和娱乐消费为一体的视频播放器是消费者的一个主题需求。

文中所介绍的视频播放器是基于安卓手机平台开发的的一款简单的视频播放器,实现基本的播放、自由拖动进度条、随意暂停的功能。

该视频播放器选用的开发环境是基于Eclipse和AndroidADT的Java代码,使用了surfaceview控件等

关键词:

安卓、eclipse、视频播放器

1搭建Android开发平台

1.1下载软件

JDK 1.7+     

 Eclipse  http:

//www.eclipse.org/downloads/ 

Android SDK  

1.2安装软件和配置环境

1.2.1安装JDK

(1)下载好的JDK是一个可执行安装程序,双击安装。

假设安装路径为:

C:

/Program Files/Java/jdk1.6.0_05(当然其他路径也可以)。

 JDK安装完成之后要设置系统环境变量:

 我的电脑点右键,选择“属性”,选择“高级”标签,进入环境变量设置。

环境变量设置,分别设置三个环境变量:

JAVA_HOME、Path变量、classpath变量。

1.2.2具体设置JAVA_HOME、Path变量、classpath环境变量

右键计算机à属性à高级系统属性à环境变量à新建

变量名

JAVA_HOME

C:

/Program Files/Java/jdk1.7.0_05

Path

%JAVA_HOME%/bin;%JAVA_HOME%/jre/bin;

classpath

:

.;%JAVA_HOME%/lib/;%JAVA_HOME%/jre/lib/

1.2.3安装Eclipse配置Android环境

将下载的Eclipse压缩包解压到相应安装目录即可。

启动eclipse,选择:

Help > Software Updates > Find and Install……

在弹出的对话框中选择第二个选项:

Search for new features to install,点击next,进入下一步。

 

选择New Remote Site,在弹出的对话框中键入远程站点的名字,以及站点的URL:

https:

//dl-

详细过程请参考

2基于Android平台的视频播放器设计

2.1视频播放器程序对应得布局文件

android="

xmlns:

tools="

android:

layout_width="match_parent"

android:

layout_height="match_parent"

tools:

context=".MainActivity">

android:

id="@+id/sv"

android:

layout_width="fill_parent"

android:

layout_height="fill_parent"/>

android:

id="@+id/rl"

android:

layout_width="fill_parent"

android:

layout_height="fill_parent"

android:

visibility="visible">

android:

id="@+id/sbar"

style="?

android:

attr/progressBarStyleHorizontal"

android:

layout_width="fill_parent"

android:

layout_height="wrap_content"

android:

layout_alignParentBottom="true"

android:

max="100"

android:

progress="0"/>

android:

id="@+id/play"

android:

layout_width="wrap_content"

android:

layout_height="wrap_content"

android:

layout_centerHorizontal="true"

android:

layout_centerVertical="true"

android:

onClick="click"

android:

src="@android:

drawable/ic_media_pause"/>

上述代码中使用FrameLayout布局,在该布局下方放置一个SurfaceView控件,在SurfaceView上方添加一个SeekBar用于控制视频的进度,添加一个ImageView用于控制视频的播放与暂停。

2.2视频播放器实现具体内容

2.2.1创建控件实例与变量

publicclassMainActivityextendsActivityimplementsOnSeekBarChangeListener,

Callback{

privateSurfaceViewsv;

privateSurfaceHolderholder;

privateMediaPlayermediaplayer;

privateintposition;

privateRelativeLayoutrl;

privateTimertimer;

privateTimerTasktask;

privateSeekBarsbar;

privateImageViewplay;

2.2.2初始化计时器

timer=newTimer();

task=newTimerTask(){

@Override

publicvoidrun(){

if(mediaplayer!

=null&&mediaplayer.isPlaying()){

intprogress=mediaplayer.getCurrentPosition();

inttotal=mediaplayer.getDuration();

sbar.setMax(total);

sbar.setProgress(progress);

}

}

};

timer.schedule(task,500,500);

rl=(RelativeLayout)findViewById(R.id.rl);

holder=sv.getHolder();//得到SurfaceView的容器,界面内容是显示在容器里面的。

//过时的api,必须写,如果4.0以上的系统,不写完全没问题,4.0一下的系统必须要写

holder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);

//surfaceView被创建是需要花费一定的时间的。

//在oncreate方法执行的时候surfaceViewHolder还没有完全创建出来。

holder.addCallback(this);

}

2.2.3onTouchEvent()方法

publicvoidclick(Viewview){

if(mediaplayer!

=null&&mediaplayer.isPlaying()){

mediaplayer.pause();

play.setImageResource(android.R.drawable.ic_media_play);

}else{

mediaplayer.start();

play.setImageResource(android.R.drawable.ic_media_pause);

}

}

2.2.4SeekBar的回调方法

//进度发生变化时触发

@Override

publicvoidonProgressChanged(SeekBarseekBar,intprogress,

booleanfromUser){

}

//进度条开始拖动时触发

@Override

publicvoidonStartTrackingTouch(SeekBarseekBar){

}

//进度条拖动停止时触发

@Override

publicvoidonStopTrackingTouch(SeekBarseekBar){

intposition=seekBar.getProgress();

if(mediaplayer!

=null&&mediaplayer.isPlaying()){

mediaplayer.seekTo(position);

}

}

2.2.5SurfaceHolder的回调方法

publicvoidsurfaceCreated(SurfaceHolderholder){

try{

mediaplayer=newMediaPlayer();

mediaplayer.setAudioStreamType(AudioManager.STREAM_MUSIC);

//mediaplayer.create(this,R.raw.hahaha);

mediaplayer.setDataSource("/sdcard/hahaha.mp4");

mediaplayer.setDisplay(holder);

mediaplayer.prepareAsync();

mediaplayer.setOnPreparedListener(newOnPreparedListener(){

@Override

publicvoidonPrepared(MediaPlayermp){

mediaplayer.start();

if(position>0){

mediaplayer.seekTo(position);

}

}

});

}catch(Exceptione){

Toast.makeText(MainActivity.this,"播放失败",0).show();

e.printStackTrace();

}

}

2.3运行效果模拟(手机运行)

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2