项目中用到播放一小段广告宣传片,需求简单,只提供播放功能即可,于是采用VideoView来实现,在实现的过程中主要遇到了三个问题,一个是在播放前先黑屏一下,一个是宣传片没有全屏播放,另一个是再次播放时先显示上一次退出时的残影。
第一个问题:播放前先黑屏一下。是由于VideoView加载资源需要一定的时间,视频加载到视频渲染到屏幕这个过程也是需要一定的时间,所以采用的解决方案是:
先根据宣传片的背景设置VideoView的背景色(请自己百度如何根据宣传片的背景来吸取RGB颜色值,然后再转换为16进制的值):
<com.cmdc.user.widget.FullScreenVideoView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#E8E8E8"/>
这里的background的值就是根据宣传片的背景吸取出来的。在视频播放时要把背景更改为透明的:
videoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
mp.setOnInfoListener(new MediaPlayer.OnInfoListener() {
@Override
public boolean onInfo(MediaPlayer mp, int what, int extra) {
if (what == MediaPlay