SurfaceView从android 1.0就有了,十分好用。一般来说,UI对刷新都需要在UI线程中完成,但是,surfaceview可以在非UI线程中完成刷新。这样以来就很方便了,比如在线播放,就不需要自己去写handler来实现两个线程之间的通信了,直接可以在非UI线程中播放视频。这是大致步骤,但只有这些是不够的在第二步之前需要确保surfaceHolder已经准备好了。Callback 有三个回调函数,如下:surfaceCreated()会在SurfaceHolder被创建的时候回调,在这里可以做一些初始化的操作,surfaceDestroyed()会在SurfaceHolder被销毁的时候回调,在这里可以做一些释放资源的操作,防止内存泄漏。一般,会在surfaceCreated中给MediaPlayer设置surfaceHolder。下面贴上具体代码:xml文件:

android使用surfaceview+MediaPlayer播放视频

android使用surfaceview+MediaPlayer播放视频

android使用surfaceview+MediaPlayer播放视频