继承关系
public class VideoView extends SurfaceView
implements MediaController.MediaPlayerControl
java.lang.Object
android.view.View
android.view.SurfaceView
android.widget.VideoView
常用方法:
public void setVideoPath (String path) 加载path路径的文件
public void setVideoURI (Uri uri) 加载uri所对应的视频
public void start () 开始
public void pause () 暂停
public void stop() 停止
public void resume () 恢复
public void seekTo (int msec) 定位
public void setMediaController (MediaController controller) 设置MediaController对象
public class MediaController extends FrameLayout
MediaController
继承关系:
java.lang.Object
android.view.View
android.view.ViewGroup
android.widget.FrameLayout
android.widget.MediaController
常用方法:
public void hide () 从屏幕中移除控制器。
public boolean isShowing () 判断媒体控制器是否处于可见状态
public void show (int timeout) 在屏幕上显示这个控制器。它将在闲置’超时 (timeout)’毫秒到达后自动消失。
参数
timeout 这个参数以毫秒为单位。如果设置为0将一直显示到调用hide()函数为止。
public void show () 在屏幕上显示这个控制器。它将在3秒以后自动消失。
public void setMediaPlayer (MediaController.MediaPlayerControl player)
设置MediaPlayer使之与要绑定的控件绑定在一起其参数是一个MediaController.MediaPlayerControl 静态接口的对象,(而VideoView是MediaController.MediaPlayerControl静态接口的子实现类,这就使得我们可以更好的控制我们的视频播放进度)
xml:
public class VideoView extends SurfaceView
implements MediaController.MediaPlayerControl
java.lang.Object
android.view.View
android.view.SurfaceView
android.widget.VideoView
常用方法:
public void setVideoPath (String path) 加载path路径的文件
public void setVideoURI (Uri uri) 加载uri所对应的视频
public void start () 开始
public void pause () 暂停
public void stop() 停止
public void resume () 恢复
public void seekTo (int msec) 定位
public void setMediaController (MediaController controller) 设置MediaController对象
public class MediaController extends FrameLayout
MediaController
继承关系:
java.lang.Object
android.view.View
android.view.ViewGroup
android.widget.FrameLayout
android.widget.MediaController
常用方法:
public void hide () 从屏幕中移除控制器。
public boolean isShowing () 判断媒体控制器是否处于可见状态
public void show (int timeout) 在屏幕上显示这个控制器。它将在闲置’超时 (timeout)’毫秒到达后自动消失。
参数
timeout 这个参数以毫秒为单位。如果设置为0将一直显示到调用hide()函数为止。
public void show () 在屏幕上显示这个控制器。它将在3秒以后自动消失。
public void setMediaPlayer (MediaController.MediaPlayerControl player)
设置MediaPlayer使之与要绑定的控件绑定在一起其参数是一个MediaController.MediaPlayerControl 静态接口的对象,(而VideoView是MediaController.MediaPlayerControl静态接口的子实现类,这就使得我们可以更好的控制我们的视频播放进度)
实现代码:
package com.example.videotest;
import java.io.File;
import android.app.Activity;
import android.graphics.PixelFormat;
import android.os.Bundle;
import android.os.Environment;
import android.widget.MediaController;
import android.widget.Toast;
import android.widget.VideoView;
public class MainActivity extends Activity {
private VideoView videoView;
MediaController mediaController;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//getWindow().setFormat(PixelFormat.TRANSLUCENT);
setContentView(R.layout.activity_main);
videoView = (VideoView)findViewById(R.id.video);
mediaController = new MediaController(this);
String vfile = Environment.getExternalStorageDirectory()+"/test_1.mp4";
//File videoFile = new File("/storage/sdcard0/test_1.mp4");
// 先判断这个文件是否存在
if (vfile!=null) {
//videoView.setVideoPath(videoFile.getAbsolutePath());
videoView.setVideoPath(vfile);
// 设置VideView与MediaController建立关联
videoView.setMediaController(mediaController);
// 设置MediaController与VideView建立关联
mediaController.setMediaPlayer(videoView);
// 让VideoView获取焦点
videoView.requestFocus();
// 开始播放
videoView.start();
} else {
Toast.makeText(this, "文件不存在", Toast.LENGTH_LONG).show();
}
}
}
xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<VideoView
android:id="@+id/video"
android:layout_width="fill_parent"
android:layout_height="fill_parent" />
</LinearLayout>