html中视频变圆角,圆形视频和圆角视频的一种实现方式
介绍
因为项目的需要需要实现圆角视频,一开始接到需求的时候是惊讶的,因为很少有圆角的视频(主要是一开始没有思路了。。。。。)
github 上已经有一个实现了
videoroundedcorners
但是对于我的需要有些不满足,不能了在上面添加view,因为它设置了
setZOrderOnTop
所以才有了这边文章
效果
屏幕快照 2018-04-12 下午5.38.26.png
屏幕快照 2018-04-12 下午5.38.35.png
好了效果就是这样的,接下来是代码了
实现部分
这里是采用MediaPlayer 和 Opengl 实现的
用到了Opengl的模板测试功能
@Override
public void onDrawFrame(GL10 gl) {
GLES20.glEnable(GLES20.GL_STENCIL_TEST);
GLES20.glClear(GLES20.GL_STENCIL_BUFFER_BIT);
GLES20.glStencilFunc(GLES20.GL_ALWAYS, 1, 0xff); // 总是通过
GLES20.glStencilOp(GLES20.GL_KEEP, GLES20.GL_KEEP, GLES20.GL_REPLACE);
if (currentShape == SHAPE_CIRCL) {
mCircleShape.draw();
} else {
mRoundShape.draw();
}
GLES20.glStencilFunc(GLES20.GL_EQUAL, 1, 0xff); // 只有模板缓冲区中的模板值为1的地方才被绘制
GLES20.glStencilOp(GLES20.GL_KEEP, GLES20.GL_KEEP, GLES20.GL_KEEP);
mVideoTextture.draw();
GLES20.glDisable(GLES20.GL_STENCIL_TEST);
}
先画一个形状然后再把视频覆盖到上面进行裁剪实现还是不复杂的。
跟Canvas的PorterDuffXfermode实现圆形图片有点异曲同工的意思。
有需要可以去看看代码
如果对你有帮助就给他stars吧
代码链接
html中视频变圆角,圆形视频和圆角视频的一种实现方式相关推荐
- 帆软BI中界面上如果要替换原有的组件,两种替换方式
通过查看源码js得知,BI中的组件有两种书写方式,第一种就是类似: var He = function (e) {var t, i;function n() {};i = e;t = n;t.prot ...
- pythontk界面显示函数中的变量值_简单易学,西门子触摸屏3种修改变量值的方法!博图Wincc V14组态...
应条友要求,今天分享3种修改触摸屏变量值的最常用方法! 全文约700字,通读4分钟! 看完本章,你将收获以下内容: 一:必会知识点:3种修改变量的方法及适用点 二:实例:3种方法修改触摸屏变量值 三: ...
- php裁剪图片圆角圆形,php生成圆角图片代码
搜索热词 下面是编程之家 jb51.cc 通过网络收集整理的代码片段. 编程之家小编现在分享给大家,也给大家做个参考. $image_file = $_GET['src']; $corner_radi ...
- Windows7中启动Mysql服务时提示:拒绝访问的一种解决方式
场景 在Windows7中打开任务管理器--服务下 找到mysql的服务点击启动时提示: 拒绝访问 这是因为权限不够导致的不能启动sql服务. 点击 任务管理器右下角的服务 在这里就可以正常启动服务
- C#中(int)、Conver.Toint32()、int.Parse()三种类型转换方式的区别与联系--C#基础知识
自己也是刚学习C#程序设计语言,总结了一点知识点,想分享给大家.毕竟刚学习这门语言,学得不深,哪里如果有错误,请帮个忙指出一下哈,谢谢! 1.(int)可用于单精度.双精度等其他数值类型的转换(到整型 ...
- C#中(int)、Conver.Toint32()、int.Parse()三种类型转换方式的区别
1.(int)可用于单精度.双精度等其他数值类型的转换(到整型int),不能用于转换string类型转换为int类型,系统会报错,程序是不能运行. 注意:Double或Float被转换成int类型时, ...
- 百度的云智一体,让视频变得“硬核性感”
金磊 发自 凹非寺 量子位 报道 | 公众号 QbitAI 这是一个视频无处不在的大时代. 娱乐,靠视频. 学习,看视频. 甚至图文工作,也在视频化. -- 视频,已然逐步成为了信息传递的主要载体和介 ...
- 视频配音文字转语音怎么弄?介绍几种好用的方法给你
相信很多小伙伴在制作视频的时候都会遇到需要配音的问题,当我们不想用自己的声音去配音时,就可以借助一些配音软件来快速把文字转语音.下面我就来告诉你们视频配音制作软件有哪些,如果你们感兴趣的话,快来阅读本 ...
- 音视频开发必看:“秒变萝莉音”,游戏中的变声是如何实现的
0.引 自从有了"变声",你永远猜不到隔着网线的另一边和你开黑的队友到底是男是女. 当然,天然会伪音的我们学不来,也没必要,这里主要跟大家分享一个一篇关于音视频开发中的变声实现的技 ...
- 怎么让模糊的数字变清楚_后期处理 怎么覆盖视频中的数字或某个文字?模糊处理视频中某几个字中的1个字...
明天就是2020年了,时间过得真快啊,仿佛2019从未来过,但2019确实要结束了,真是令人感慨啊~不说废话,还是来看看今天的视频后期处理教程吧!后期处理是什么意思呢?今天小编要来介绍的是摄影的后期处 ...
最新文章
- android studio 优化提速方法,Android Studio速度慢(如何加速)?
- zend studio 10破解/汉化
- HTML块级元素/块标签/块元素
- Enze Second day
- YUV采样及存储格式
- 20. javacript高级程序设计-JSON
- 仿souhu页面设计
- windows下phpstorm的高效使用
- 引用com.sencha.gxt.ui.GXT加载错误解决方案
- 线性同余法产生1000个随机数
- 大名鼎鼎的挖掘鸡最新版本6.5
- TCP粘包的分析和处理
- IPCam网络摄像头
- #655 – 冒泡事件可能会被某些控件屏蔽(Bubbling Mouse Events Swallowed by Some Controls)
- 用计算机弹我们不一样谱子,我们不一样钢琴谱
- 人工智能,机器学习与深度学习,到底是什么关系
- 一篇文章让你解决sql报错check the manual that corresponds to your MySQL server version for the right syntax to
- Redis 内存分析神器
- java批量生成pdf
- OpenJudge Tian Ji -- The Horse Racing
热门文章
- python有什么优点_Python是什么?有什么优点?赶紧来看看Python的入门教程
- python idle在哪_python安装包里idle在哪
- 时间复杂度、渐进记法、主定理
- redis php扩展 linux,linux下为php安装redis扩展phpredis
- Cpp 对象模型探索 / 单一继承的类的内存布局
- sigmastarSSD201/SSD202 github上开源了!
- Arduino--1838红外遥控
- 云函数连接mysql超时_云函数访问MYSQL数据库出错?
- java sql string_JAVA String转化成java.sql.date和java.sql.time方法示例
- web页面--前端明水印