-
Notifications
You must be signed in to change notification settings - Fork 0
SurfaceView
panwj edited this page Jul 28, 2017
·
2 revisions
- 使用其自带的播放器。指定Action为ACTION_VIEW,Data为Uri,Type为其MIME类型
- 使用android自带的VideoView,这种方法太简单就不介绍了
- 使用SurfaceView+MediaPlayer,这种方式效果比较好
SurfaceView从android 1.0就有了,十分好用。一般来说,UI对刷新都需要在UI线程中完成,但是,surfaceview可以在非UI线程中完成刷新。这样以来就很方便了,比如在线播放,就不需要自己去写handler来实现两个线程之间的通信了,直接可以在非UI线程中播放视频。
步骤:
调用player.setDataSource()方法设置要播放的资源,可以是文件、文件路径、或者URL。 调用MediaPlayer.setDisplay(holder)设置surfaceHolder,surfaceHolder可以通过surfaceview的getHolder()方法获得。 调用MediaPlayer.prepare()来准备。 调用MediaPlayer.start()来播放视频。
sufaceView.Callback接口实现,需要实现其三个方法:
void surfaceDestroyed(SurfaceHolder holder):当SurfaceHolder被销毁的时候回调。
void surfaceCreated(SurfaceHolder holder):当SurfaceHolder被创建的时候回调。
void surfaceChange(SurfaceHolder holder):当SurfaceHolder的尺寸发生变化的时候被回调。