您的位置:首页 > 移动开发 > Android开发

在Android中使用VideoView播放视频

2012-10-16 13:40 603 查看
作者:温尚书,华清远见嵌入式学院讲师。
在Android中,播放视频有2种方式,第一种方式是使用MediaPlayer结合SurfaceView来播放,通过MediaPlayer来控制视频的播放、暂停、进度等,而通过SurfaceView来显示视频内容;第二种方式是使用VideoView来播放,这个类其实也是继承了SurfaceView类,并且实现了MediaController.MediaPlayerController这个用于控制媒体播放的接口,另外在VideoView上还有一个用于对媒体播放进行控制的面板,包括快进、快退、播放、暂停按钮以及一个进度条。使用VideoView播放视频的好处是简单,因为它已经帮我们实现了SurfaceView以及控制方法,我们只需要直接拿来使用就可以了,但它的缺点是灵活性不够。而使用MediaPlayer结合SurfaceView来播放视频的话,好处是可以更灵活的对其进行自定义,但缺点是难度比较大。这次我们先来看如何通过VideoView来实现视频的播放。

VidoeView的常用方法如下:




另外,媒体控制面板(MediaController)上也有一些有用的方法,如下表所示:




下面我们来看一个例子。

首先,我们要定义一个layout,在这个layout中,需要有一个VideoView组件,文件如下:

<?xml version="1.0" encoding="utf-8"?>

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

android:orientation="vertical" android:layout_width="fill_parent"

android:layout_height="fill_parent">

<VideoView android:id="@+id/videoView1" android:layout_width="match_parent"

android:layout_height="match_parent"></VideoView>

</LinearLayout>

这里定义了一个VideoView,它的id为videoVIew1,然后,我们来编写对应的Activity:

package cn.com.farsight.vv;
import android.app.Activity;

import android.content.pm.ActivityInfo;

import android.os.Bundle;

import android.view.Window;

import android.view.WindowManager;

import android.widget.MediaController;

import android.widget.VideoView;

public class MainActivity extends Activity {

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

//去掉头部title

requestWindowFeature(Window.FEATURE_NO_TITLE);

//设置全屏

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

//设置屏幕常亮

getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

setContentView(R.layout.main);

VideoView vv = (VideoView)findViewById(R.id.videoView1);

vv.setVideoPath("/mnt/sdcard/a5.mp4");

//设置媒体控制条

vv.setMediaController(new MediaController(this));

vv.start();

vv.requestFocus();

}

}

这样,就可以播放在/mnt/sdcard/a5.mp4这个视频文件了。

另外,为了防止用户误按返回键而退出播放,可以在这个程序中覆盖onBackPressed方法,在这个方法中来处理用户点击返回键的动作,例如,只有用户在短时间内点击2次返回键才真正退出播放。
原文地址:http://www.embedu.org/Column/Column493.htm ,转载请注明!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: