整个流程就是,创建一个GLSurfaceView用来装载视频,GLSurfaceView中设置renderer,自己自定义renderer,主要绘制流程都在这个,里面,主要有三个方法onsurfacecreated(),onsurfacechanged(),onDrawFrame()。
下面一段代码是初始化着色器代码,至于着色器里面的代码需要了解着色器语言
StringvertexShader=ShaderUtils.readRawTextFile(context,R.raw.vetext_sharder);
StringfragmentShader=ShaderUtils.readRawTextFile(context,R.raw.fragment_sharder);
programId=ShaderUtils.createProgram(vertexShader,fragmentShader);
aPositionLocation=GLES20.glGetAttribLocation(programId,"aPosition");
uMatrixLocation=GLES20.glGetuniformLocation(programId,"uMatrix");
uSTMMatrixHandle=GLES20.glGetUniformLocation(programId,"uSTMatrix");
uTexturesamplerLocation=GLES20.glGetUniformLocation(programId,"sTexture");
aTextureCoordLocation=GLES20.glGetAttribLocation(programId,"aTexCoord");
这一串代码是绑定纹理,设置mediaplayer每一帧作为纹理关联起来
glsurfaceview播放视频格式
textureId=textures[0];
GLES20.glBindTexture(GLES11Ext.GL_TEXTURE_EXTERNAL_OES,textureId);
ShaderUtils.checkGlError("glBindTexturemTextureID");
/*GLES11Ext.GL_TEXTURE_EXTERNAL_OES的用处?
之前提到视频解码的输出格式是YUV的(YUV420p,应该是),那么这个扩展纹理的作用就是实现YUV格式到RGB的自动转化,
本文由 贵州做网站公司 整理发布,部分图文来源于网络,如有侵权,请联系我们删除,谢谢!
抖音(Tiktok)是由北京字节跳动科技有限公司(ByteDance)孵化的音乐创意短视频社交网站。它于2016年9月20日上线,主要面向全年龄段的用户,尤其是...
飞极速为您提供高清在线电影、电视剧大全、动画片,综艺等,飞极速在线更新及时,播放速度快,给您带来最好的观影体验!飞极速在线,免费提供日本新番动漫、最新电影和最新...
《南华早报》(英语:South China Morning Post, SCMP)和星期日出版的《星期日南华早报》(英语:Sunday Morning Post...
安卓手机怎么设置黑名单不提醒,安卓手机怎么设置黑名单这个很多人还不知道,现在让我们一起来看看吧!1、若使用vivo手机,可进入手机电话/联系人--长按某个号码--(更多)--加入黑名单即可。2、联系人添加到黑名单后,如该联系人给自己拨打电话,则会有“您拨叫的用户正忙,请您稍后再拨“的提示。(资料图)3、当将某个联系人加入黑名单后,此联系人的来电、发的短信都将被拦截。4、目前有三种办法:一、手机自带...
协定存款利率是协定存款的利息率,我国的协定存款利率由中国人民银行确定并公布。协定存款是客户按照规定与金融机构签订《协定存款合同》并约定存款额度开立的结算账户,账户中超过存款额度的部分,金融机构自动将其转入协定账户,并以协定存款利率计息的一种企业存款。协定存款账户按季结息,属于基本存款额度以内的存款,按结息日中国人民银行公布的活期存款利率计息;超过基本存款额度的存款,按结息日中国人民银行公布的协定存...
PPI指数是什么意思?PPI指数全称为Producer Price Index,也就是生产价格指数,在以前也常被称作是批发价格指数。简单通俗地来说,生产价格指数就是统计上游生产制造业厂商生产商品所花费的成本价格的变化的指数,是用来反映上游生产制造商生产商品的价格变动情况的一项非常重要的经济指标。CPI和PPI下降意味着什么?CPI指的是居民消费价格指数,其在前两年因为物价上涨而被大家所熟知。PPI...