最近在做一个功能,就是广告页面的图片视频混合播放,一切的数据来源都是取自服务器,并没有规定第几个放视频,第几个放图片,先说一下实现的大体思路,首先,播放图片我们常用的是ImageView,网络图片则会选择ImageLoader框架,而播放视频由于笔者水平有限,所以只是选择了Android原生的VideoView。由于事先已经知道,广告页面只会播放图片和视频两种广告,所以就只用了ImageView和VideoView这两个控件。我们都知道View里面有一个setVisibility()方法,通过这个方法设置View的显示情况,想要让图片正常显示,直接设置调用setVisibility方法设置VISIBLE属性就行了;如果想要让View不显示,那么则调用setVisibility方法设置不显示的属性就行了,不显示的属性用两种情况,一种是不显示View并且也不让View占位置的属性GONE,另外一种则是不显示View但是View会占据它原来的位置,那么则调用INVISIBLE属性。而笔者在这个图片视频混播里则选择的是,VISIBLE和GONE两个属性。其次,学习了一下VideoView的监听事件,有播放完成的监听:setOnCompletionListener,有播放错的监听:setOnErrorListener.笔者只用到了这两个监听。最后,就是在XML文件中布局。先用一个FrameLayout对要播放广告的地方进行占位,然后把VideoView和ImageView两个控件并列的放到FrameLayout当中。紧接着就去Java代码中,去取得要播放广告的内容,通过判断是否为MP4对VideoView和ImageView的显示情况加以控制。就完成了一个视频图像混播的一个功能。
demo下载: