在Android中通常用MediaPlayer来播放一些媒体文件,对于音频文件来说只需直接使用MeidaPlayer结合几句代码即可,但是对于视频文件来说稍微复杂一些。单独的MediaPlayer只能播放音频文件,要想播放视频还需要SurfaceView来配合显示画面。而对于SurfacView而言,在Android中采用了显示与控制分离机制,即SurfaceView只是负责显示画面,而不负责控制视频流,因此还需要SurfaceHolder来控制视频流。关键代码如下:
MediaPlayer player = new MediaPlayer();
SurfaceView view = (SurfaceView)findViewById(R.id.surfaceview);
SurfaceHolder holder = view.getHolder();
holder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
player.setDisplay(holder);