Android播放透明视频
发布日期:2021-05-20 13:15:47 浏览次数:9 分类:技术文章

本文共 1811 字,大约阅读时间需要 6 分钟。

 

话不多说,开局一张图,内容全靠“编”:

 

播放透明视频

 

随着业务场景的增多,更多的特效用原生绘制、GIF的方式都不能很好的满足需求了,这就带来了一个新的方式:用视频特效来代替。特别是在视频(直播)行业中,各种特效炫酷又精美,能很好的表达用户的想法。但是这也带来了一个问题:虽然播放视频非常简单,但是同时要把视频下面的UI也展示出来就没那么简单了,这就需要视频有透明效果,这样才能不遮挡底层UI。既然写了这篇博客,自然有很简单的方式来实现这种透明视频的播放了,那就是用第三方库,几句代码就能实现透明视频的播放。

一、先来大致说一下透明视频播放原理(只是单纯的调用库也不好):

视频播放一般都会把视频数据(大部分是yuv)转换为rgba来渲染(播放),实际情况我们也是这么做的,拿到rgba颜色数据之后通过OpenGL绘制到surface上面,此时渲染出来的视频就是正常的(不透明的),因为我们默认alpha通道为1(1完全不透明,0完全透明)。当我们需要达到透明效果时就需要控制alpha通道的值,在渲染像素点的颜色时并考虑当前像素点的透明度,这样渲染出来的颜色值就是带透明度的,这样透明视频的播放就可以实现了。

二、播放透明视频的方式:

1、过滤某一范围的颜色值(最简单,适用于任一视频,但效果不佳,类似于电影绿布效果):

比如我们把特效视频背景设置成黑色 [r(0) g(0) b(0)],然后特效用其他颜色来实现(尽量不要包含黑色),这样我们渲染时就可以判断当前像素的rgb分量值是否接近0,如果接近0,那么就把此像素的alpha值设置成0(完全透明),这样这个像素点就不会显示出来,达到了透明的效果;反之若此像素的rgb分量值与0相差比较大,此时设置alpha的值为1(完全不透明),这样这个像素点就显示出来了,我们的特效也就显示出来了。

2、制作包含alpha分量值的视频(复杂,视频需定制):

这种视频常见的制作效果是alpha值和特效左右平分,alpha值用黑白特效视频制作(纯黑色为0-完全透明,纯白色为1-完全不透明,其余颜色介于(0~1-部分透明)之间),当渲染视频时,首先去拿特效的rgb值,然后再通过rgb的坐标位置去拿alpha值,这样结合起来就可以实现透明效果,当然播放时我们只需要裁剪播放特效视频那一部分区域。比如:特效rgb值是 rgb(100)红色,此时这个值对应的alpha的值的rgb值为(0.5,0.5,0.5),这样我们就取到了透明度alpha=0.5,最终渲染像素点时的rgba值就是rgba(1,0,0,0.5)成了半透明的红色。

三、SDK调用方式:

虽然原理和实现讲了,但是要完全实现效果出来还是有一定的难度,下面我们就开的调用wlmedia的库了,简直so easy!

1、gradle中导入库:目前最新版本 1.1.3

implementation 'ywl.ywl5320:wlmedia:1.1.3'

2、设置布局:

//位于所有布局上层
//和普通view一样可随意设置位置

3、开始播放(关键代码)

WlSurfaceView wlSurfaceView = findViewById(R.id.wlsurfaceview);wlSurfaceView.enableTransBg(true); //设置surface背景透明WlMedia wlMedia = new WlMedia();wlSurfaceView.setWlMedia(wlMedia);wlMedia.setSourceType(WlSourceType.NORMAL);wlMedia.setCodecType(WlCodecType.CODEC_MEDIACODEC);wlMedia.setLoopPlay(false);wlMedia.setVideoClearColor(0, 0, 0, 0); //设置surface颜色透明wlMedia.enableTransVideo(WlVideoTransType.VIDEO_TRANS_LEFT_ALPHA); //设置alpha通道类型(左边)wlMedia.prepared();

 

以上就是播放透明视频的原理和方法,不止在android中,其他平台也是一样的,原理才是核心。

Demo下载地址:

注:部分视频素材来自

 

 

转载地址:https://blog.csdn.net/ywl5320/article/details/108812241 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:wlmedia播放器集成(1)— 播放器集成
下一篇:Android获取(网络和本地)视频缩略图

发表评论

最新留言

留言是一种美德,欢迎回访!
[***.207.175.100]2024年04月05日 17时13分52秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章