随时随地阅读更多技术实战干货,获取项目源码、学习资料,请关注源代码社区公众号(ydmsq666)
Android提供了VideoView组件用于播放视频,它位于android.widget包下。实际上与VideoView结合使用的还有一个MediaController类,它的作用是提供一个友好的图形控制界面,来控制视频的播放。这样开发者就不需要自己去控制视频的播放、暂停了。下面用一个简单实例来演示VideoView的使用:
Activity:
package com.home.activity;
import java.io.File;
import com.home.videotest.R;
import android.app.Activity;
import android.content.res.Configuration;
import android.os.Bundle;
import android.os.Environment;
import android.widget.MediaController;
import android.widget.Toast;
import android.widget.VideoView;
public class VideoTestActivity extends Activity {
private VideoView video;
private MediaController controller;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// 实例化MediaController对象
controller = new MediaController(this);
// 获取VideoView组件实例
video = (VideoView) findViewById(R.id.main_video);
// 得到要播放的视频的File对象
File file = new File(Environment.getExternalStorageDirectory()
+ "/devil_may_cry.mp4");
if (file.exists()) {
// 得到视频的绝对路径
video.setVideoPath(file.getAbsolutePath());
// 建立MediaController和VideoView的关联
controller.setMediaPlayer(video);
// 建立VideoView和的MediaController关联
video.setMediaController(controller);
// 播放视频
video.start();
// 让video获取焦点
video.requestFocus();
} else {
Toast.makeText(this, "找不到文件,无法播放", Toast.LENGTH_LONG).show();
}
}
// 如果Android-Manifest文件中的activity标签加入了android:configChanges="orientation"属性,
// 那么当屏幕旋转时会调用该方法,而不会调用onCreate方法,这样旋转屏幕时视频就不会又从头播放
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
}
}