日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

html中视频变圆角,圆形视频和圆角视频的一种实现方式

發布時間:2024/10/8 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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中视频变圆角,圆形视频和圆角视频的一种实现方式的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。