本发明涉及数字视频技术领域,具体的说,是一种解决android广告视频启播前黑屏的方法。
背景技术:
目前,Android系统已经作为普遍的智能电视平台出现在我们面前,为了提升电视平台的运营价值,很多电视厂商都搭载了自己的广告服务系统和电视终端播放应用,但无论性能多么优良的播放器,由于视频播放前的资源准备的时间,用户总能感觉到视频启播前的黑屏,就用户体验来说,用户不明情况的黑屏是应该想办法避免的。
也有很多时候由于网络的原因,视频卡顿在黑屏的位置不动,而用户不知道是什么原因导致的视频不动,只好退出视频的播放再次打开视频,这往往会再一次从头观看广告,导致用户体验极差。
技术实现要素:
本发明的目的在于提供一种解决android广告视频启播前黑屏的方法,用于解决现有技术中视频在启播前黑屏导致用户体验变得很差的问题。
本发明通过下述技术方案解决上述问题:
一种解决android广告视频启播前黑屏的方法,包括以下步骤:
步骤1:检测是否解析已经解析过渡图片,若没有则解析出视频第一帧并保存为图片格式并命名;
步骤2:将步骤1所保存的图片转化成Drawable对象;
步骤3:将步骤2中的得到的Drawable对象设为应用的启动背景;
步骤4:视频启播前将步骤1中得到的图片展示在ImageView中,并为MediaPlayer设置OnInfoListner监听。
步骤5:当OnInfoListner监听到视频的第一帧出现之后隐藏步骤4中的ImageView;若未监听到视频的播放则退出播放程序。
通过本方法,将视频的第一帧解析出来,然后以图片的形式进行存储,接着将其转换成Drawable对象,再将这个对象放在视频启播时候的ImageView中,同时监听视频的播放,当视频的第一帧出现的时候隐藏掉这个ImageView,自然的过渡到视频的播放,没有了黑屏的过程,很好的解决了由于视频播放前的资源准备的时间,用户总能感觉到视频启播前的黑屏而导致用户体验很差的问题。
优选地,所述步骤1中采用Andriod SDK解析视频的第一帧,并以图片格式保存在data/tmp目录下,在行业内,大家约定俗成的将图片保存在data下的tmp文件夹下,这样便于查找,实际情况下,保存在有权限访问的路径下都是可以的,但是这样的保存路径符合行业规范,让其他的程序员在接手相应工作的时候能够快速的明白。
优选地,所述视频第一帧的图片的命名为cache,该命名可任意命名,但是cache是行业内程序员常用的命名,使用这个命名可以让其他程序员直观的看出图片的用途,不用再通过逐步解读程序代码来推断其用途。
优选地,所述步骤2采用Drawable.createFromPath()方法将步骤1保存的图片转化为Drawable对象,转换为对象形式之后方便调用和使用,无需再引用路径调用图片格式的文件。
优选地,所述步骤3中通过回调方法调用this.getWindow().setBackgroundDrawable()将步骤2中得到的Drawable对象设为视频播放器的启动背景,用视频第一帧的图片代替视频启播前的黑屏,让视频没有黑屏过程,视频的启动播放更自然地过渡,提升用户体验。
优选地,所述步骤5中对视频第一帧的判断采用MediaPlayer.OnInfoListener的onInfo()方法,通过监听事件监听视频的播放,视频开始播放的时候就自动隐藏设置的视频第一帧的图片,让视频的启动播放没有黑屏的过程从视频的第一帧自然过渡到视频的播放,提升用户体验。
本发明与现有技术相比,具有以下优点及有益效果:
(1)本发明将视频的第一帧解析出来,然后以图片的形式进行存储,接着将其转换成Drawable对象,再将这个对象放在视频启播时候的ImageView中,同时监听视频的播放,当视频的第一帧出现的时候隐藏掉这个ImageView,自然的过渡到视频的播放,没有了黑屏的过程,很好的解决了由于视频播放前的资源准备的时间,用户总能感觉到视频启播前的黑屏而导致用户体验很差的问题。
(2)本发明采用Andriod SDK解析视频的第一帧,并以图片格式且保存在data/tmp目录下,在行业内,大家约定俗成的将图片保存在data下的tmp文件夹下,这样便于查找,实际情况下,保存在有权限访问的路径下都是可以的,但是这样的保存路径符合行业规范,让其他的程序员在接手相应工作的时候能够快速的明白。
(3)本发明中对视频第一帧的判断采用MediaPlayer.OnInfoListener的onInfo()方法,通过监听事件监听视频的播放,视频开始播放的时候就自动隐藏设置的视频第一帧的图片,让视频的启动播放没有黑屏的过程从视频的第一帧自然过渡到视频的播放,提升用户体验。
附图说明
图1为本发明的解决android广告视频启播前黑屏的方法流程示意图。
具体实施方式
下面结合实施例对本发明作进一步地详细说明,但本发明的实施方式不限于此。
实施例1:
结合附图1所示,一种解决android广告视频启播前黑屏的方法,其特征在于,所述方法包括以下步骤:
步骤1:检测是否解析已经解析过渡图片,若没有则采用Andriod SDK解析视频的第一帧,保存为图片格式并命名;
步骤2:将步骤1所保存的图片转化成Drawable对象;
步骤3:将步骤2中的得到的Drawable对象设为应用的启动背景;
步骤4:视频启播前将步骤1中得到的图片展示在ImageView中,并为MediaPlayer设置OnInfoListner监听。
步骤5:当OnInfoListner监听到视频的第一帧出现之后隐藏步骤4中的ImageView;若未监听到视频的播放则退出播放程序。
根据上述方法,在实际的操作过程中的操作如下:
第一步,利用Andriod SDK解析出视频第一帧并以jpg格式保存在data/tmp目录下命名为cache;第二步,利用Drawable.createFromPath(“data/tmp/cache.jpg”)将保存的jpg图片转化成Drawable对象;第三步,在应用的Activity的onCreate的回调方法中调用this.getWindow().setBackgroundDrawable(),将上一步骤中的得到的Drawable对象设为应用的启动背景;第四步,应用启动后视频启播前先将第一步中得到的图片展示在ImageView中,并为MediaPlayer设置OnInfoListner监听;第五步,在MediaPlayer.OnInfoListener的onInfo方法中判断视频第一帧出现后,隐藏上一步中的ImageView。
通过这五个步骤就可以完成将视频的黑屏加载资源的过程改变为视频第一帧的图片,让视频的播放平稳的过渡,用户不会感受到视频播放时候的黑屏,不会因此困惑,也不会因网络原因卡顿在黑屏阶段而不知道是什么原因之后退出视频播放再次进入视频重复观看广告,用户体验大大提升。
尽管这里参照本发明的解释性实施例对本发明进行了描述,上述实施例仅为本发明较佳的实施方式,本发明的实施方式并不受上述实施例的限制,应该理解,本领域技术人员可以设计出很多其他的修改和实施方式,这些修改和实施方式将落在本申请公开的原则范围和精神之内。