作者@恺风Wei。
Android为视频播放提供了很好的封装。通过android.widget.VideoView封装了MediaPlayer,使用起来很简单。
小例子的效果如下:
小例子的layout的xml文件如下:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout …… >
<VideoView android:id="@+id/video_view"
android:layout_width="200px"
android:layout_height="200px"/>
</LinearLayout>小例子的代码如下:
public class VideoDemo extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.video_demo_activity);
VideoView vv = (VideoView)findViewById(R.id.video_view);
//媒体控制器就是图例中最下方的控制器,控制器出现一会会消失,按VideoView则会出现。当然,我们也可以不用媒体控制器,而自行设计按钮,通过start(),pause(),stopPlayback()和seekTo()来进行控制。
MediaController mc = new MediaController(this);
vv.setMediaController(mc);
//例子显示的是web适配,需要INTERNET的permission
String uriStr = "http://www.androidbook.com/akc/filestorage/android/documentfiles/3389/movie.mp4";
vv.setVideoURI(Uri.parse(uriStr)); //对于本地视频,除了URI外,还可以是用setVideoPath();
vv.requestFocus();
vv.start(); }
}
我们同样可以用VideoView来播发音频,因为它实际上也是使用MediaPlayer的。
如果我们直接使用MediaPlayer类来播放视频,可以借助SurfaceView来作为图像或视频播放的可视view。建MediaPlayer对象有静态方法MediaPlayer.create(Context, Uri, SurfaceHolder),以及方法setDisplay(SurfaceHolder)。而SurfaceHolder和surfaceView之间的关联为:surfaceHolder=surfaceView.getHolder();
小例子代码在:Pro Android学习:media framworks小例子