作者@恺风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小例子